以扩展的先序遍历建立二叉树,根结点的地址通过函数值返回。
例如
输入AB#DF##G##C##,建立二叉树如下图,
二叉树.png
输出该二叉树的先序遍历序列ABDFGC。
#include <stdio.h>
#include <stdlib.h>
typedef char ElementType;
typedef struct BiTNode {
ElementType data;
struct BiTNode* lchild;
struct BiTNode* rchild;
}BiTNode, * BiTree;
BiTree CreatBinTree();
void preorder(BiTree T);
int main()
{
BiTree T = CreatBinTree();
preorder(T);
return 0;
}
void preorder(BiTree T)
{
if (T)
{
printf("%c", T->data);
preorder(T->lchild);
preorder(T->rchild);
}
}
BiTree CreatBinTree()
{
char ch; BiTree T;
scanf("%c", &ch);
if (ch == '#')//如果当前字符为#时说明当前节点为空,return NULL
return NULL;
T =(BiTree*)malloc(sizeof(BiTree));
T->data = ch;
T->lchild =CreatBinTree();//调用函数建立左孩子
T->rchild =CreatBinTree();//调用函数建立右孩子
return T;
}
本文转载自: https://blog.csdn.net/yang8627/article/details/117085409
版权归原作者 Noahの梦想 所有, 如有侵权,请联系我们删除。
版权归原作者 Noahの梦想 所有, 如有侵权,请联系我们删除。