码迷,mamicode.com
首页 > 其他好文 > 详细

二叉树的建立和三种遍历

时间:2017-03-10 17:35:49      阅读:185      评论:0      收藏:0      [点我收藏+]

标签:访问   stdio.h   puts   通过   int   sse   数据   box   struct   

 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

二叉树的建立和三种遍历

标签:访问   stdio.h   puts   通过   int   sse   数据   box   struct   

原文地址:http://www.cnblogs.com/OneL1fe/p/6531520.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!