技术学习博2

补个档,第⑨周学的树

难的还是递归,绕来绕去( ´_ゝ` )

 1 //树的定义(结点定义)
 2 typedef char DataType;
 3 typedef struct Node {
 4      DataType  data; 
 5      struct  Node  *lchild; 
 6      struct  Node  *rchild;                   
 7 } BiNode,*BiTree;
 8 
 9 //创建树的二叉链表(递归)
10 void CreateBiTree(BiTree *bt)
11 {
12     char ch;
13     ch = getchar();
14     if(ch=='.') *bt=NULL;
15     else 
16     {
17         *bt= (BiNode *)malloc(sizeof(BiNode)); 
18         (*bt)->data=ch;
19          CreateBiTree(&((*bt)->lchild)); //生成左子树
20          CreateBiTree(&((*bt)->rchild)); //生成右子树
21     }
22 }
23 
24 //输出二叉树的元素(先序)
25 void Print(BiTree bt)
26 {
27     if(bt==NULL)    
28         return;
29     else
30     {
31         printf("%c ", bt->data);
32         Print(bt->lchild);
33         Print(bt->rchild);
34     }
35 
36 }
37 
38 //主函数
39 void main()
40 {
41     BiTree T;
42     CreateBiTree(&T);
43     Print(T);
44     
45 }

 

你可能感兴趣的:(技术学习博2)