C语言二叉树的创建、(先中后序)遍历以及存在的问题

1 #include<stdlib.h> 2 #include<stdio.h> 3 4 #define True 1 5 #define False 0 6 7 typedef char TElemType; 8 typedef struct TNode { 9 TElemType data; 10 struct TNode *lchild, *rchild; 11 }TNode,*BinTree; 12 13 int CreateBinTree(BinTree T) 14 { 15 TElemType ch; 16 scanf("%c",&ch); 17 if (ch == '#') 18 T = NULL; 19 else 20 { 21 T = (TNode *)malloc(sizeof(TNode)); 22 T->data = ch; 23 CreateBinTree(T->lchild);//创建左子树 24 CreateBinTree(T->rchild);//创建右子树 25 } 26 return 0; 27 } 28 29 void PreOrderTraverse(BinTree T) //先序遍历 30 { 31 if (T!=NULL) 32 { 33 // Visit(T->data); 34 printf("%c", T->data); 35 PreOrderTraverse(T->lchild); 36 PreOrderTraverse(T->rchild); 37 } 38 } 39 40 void InOrderTraverse(BinTree T) //中序遍历 41 { 42 if (T != NULL) 43 { 44 InOrderTraverse(T->lchild); 45 // Visit(T->data); 46 printf("%c", T->data); 47 InOrderTraverse(T->rchild); 48 } 49 } 50 51 void PostOrderTraverse(BinTree T) //后序遍历 52 { 53 if (T != NULL) 54 { 55 PostOrderTraverse(T->lchild); 56 PostOrderTraverse(T->rchild); 57 printf("%c", T->data); 58 } 59 } 60 61 62 63 int main() 64 { 65 BinTree a; 66 CreateBinTree(a); 67 PreOrderTraverse(a); 68 return 0; 69 }

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpgpwj.html