二叉树

 1 #include<iostream>
 2 #include<cstdio>
 3 #include<malloc.h>
 4 #include<cstring>
 5 using namespace std;
 6 
 7 typedef char Elemtype;
 8 
 9 typedef struct BiTNode{
10     char data;
11     struct BiTNode *lchild,*rchild;
12 }BiTNode,*BiTree;
13 
14 //创建一颗二叉树,约定遵照用户前序遍历输入数据 
15 void CreateBiTree(BiTree &T){
16     char c;
17     scanf("%c",&c);
18     if(c==' ')
19         T=NULL;
20     else
21     {
22         T = (BiTNode *)malloc(sizeof(BiTNode));
23         T->data = c;
24         CreateBiTree(T->lchild);
25         CreateBiTree(T->rchild);
26     }
27 }
28 
29 void visit(char c,int level){
30     printf("%c在树中第%d层
",c,level);
31 }
32 
33 //前序遍历二叉树 
34 void PreOrderTraverse(BiTree &T, int level){
35     if(T){
36         visit(T->data,level);
37         PreOrderTraverse(T->lchild,level+1);
38         PreOrderTraverse(T->rchild,level+1);
39     }
40 } 
41 
42 int main(){
43     int level = 1;
44     BiTree T = NULL;
45     CreateBiTree(T);
46     PreOrderTraverse(T,level);
47     return 0;
48 }

原文地址:https://www.cnblogs.com/geziyu/p/10098826.html