二叉树的建立和三种遍历

Posted 夜梦多离殇

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了二叉树的建立和三种遍历相关的知识,希望对你有一定的参考价值。

 1 #include <stdio.h>
 2 #include <stdlib.h>
 3 #include <assert.h>
 4 #include <string.h>
 5 typedef struct tree{
 6     int data;
 7     struct tree *pLeft;
 8     struct tree *pRight;
 9 }*pT,T;
10 pT CreateTree(){
11     int data=0;
12     pT p=NULL;
13     puts("请输入要插入的数据:");
14     scanf("%d",&data);
15     if(data==0)
16         return NULL;
17     p=(pT)malloc(sizeof(T));
18     p->data=data;
19     printf("输入%d 的左节点值:",data);
20     p->pLeft=CreateTree();
21     printf("输入%d 的右节点值:",data);
22     p->pRight=CreateTree();
23     return p;
24 }
25 void PreOrder(pT root){
26     if(root==NULL)
27         return;
28     printf("%d\t",root->data);//访问根
29     PreOrder(root->pLeft);//访问左子树
30     PreOrder(root->pRight);//访问右子树
31 }
32 void InOrder(pT root){
33     if(root==NULL)
34         return;
35     if(root->pLeft!=NULL)
36         InOrder(root->pLeft);//访问左子树
37     printf("%d\t",root->data);//访问根
38     if(root->pRight!=NULL)
39         InOrder(root->pRight);//访问右子树    
40 }
41 void PostOrder(pT root){
42     if(root==NULL)
43         return;
44     if(root->pLeft!=NULL)
45         PostOrder(root->pLeft);
46     if(root->pRight!=NULL)
47         PostOrder(root->pRight);
48     printf("%d\t",root->data);
49 }
50 int main(){
51     pT root;
52     root=CreateTree();
53     PreOrder(root);
54     putchar(\n);
55     InOrder(root);
56     putchar(\n);
57     PostOrder(root);
58     return 0;
59 }

输入:

1
2
4
0
7
0
0
5
0
0
3
0
6
0
0

输出:

请输入要插入的数据:
输入1 的左节点值:请输入要插入的数据:
输入2 的左节点值:请输入要插入的数据:
输入4 的左节点值:请输入要插入的数据:
输入4 的右节点值:请输入要插入的数据:
输入7 的左节点值:请输入要插入的数据:
输入7 的右节点值:请输入要插入的数据:
输入2 的右节点值:请输入要插入的数据:
输入5 的左节点值:请输入要插入的数据:
输入5 的右节点值:请输入要插入的数据:
输入1 的右节点值:请输入要插入的数据:
输入3 的左节点值:请输入要插入的数据:
输入3 的右节点值:请输入要插入的数据:
输入6 的左节点值:请输入要插入的数据:
输入6 的右节点值:请输入要插入的数据:
1	2	4	7	5	3	6	
4	7	2	5	1	3	6	
7	4	5	2	6	3	1	

通过测试:

http://ideone.com/Qo2djs

以上是关于二叉树的建立和三种遍历的主要内容,如果未能解决你的问题,请参考以下文章

Python教程讲解二叉树的三种深度

二叉树的遍历

二叉树的遍历

二叉树遍历的三种方法:先序遍历,中序遍历,后序遍历

Python --- 二叉树的层序建立与三种遍历

急!二叉树的存储结构,并完成:建立、查找、计算结点数、求高度、三种遍历方式