二叉树的实现以及三种遍历方法--代码

Posted ambdyx

tags:

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

 1 #include<stdio.h>
 2 #include <stdlib.h>
 3 
 4 /*树的数据类型*/
 5 typedef char TElemType;
 6 /*定义二叉树的结构*/
 7 typedef struct BiTNode
 8 {
 9     TElemType data;                    //数据
10     struct BiTNode *left,*right;       //左右孩子节点
11 }BiTNode,*BiTree;
12 
13 void createBiTree(BiTree* T)
14 {
15     char ch;
16     scanf("%c",&ch);
17     if(ch == )
18     {
19         *T = NULL;
20     }
21     else
22     {
23         *T = (BiTNode*)malloc(sizeof(BiTNode));
24         if(!*T) exit(-1);
25         (*T)->data = ch;
26         createBiTree(&(*T)->left);
27         createBiTree(&(*T)->right);
28     }
29     
30 }
31 
32 void preOrder(BiTree T)
33 {
34     if(T==NULL) return;
35     printf("%c",T->data);
36     preOrder(T->left);
37     preOrder(T->right);
38 }
39 
40 void InOrder(BiTree T)
41 {
42     if(T==NULL)return ;
43     InOrder(T->left);
44     printf("%c",T->data);
45     InOrder(T->right);
46 }
47 
48 void PostOrder(BiTree T)
49 {
50     if(T==NULL)return;
51     PostOrder(T->left);
52     PostOrder(T->right);
53     printf("%c",T->data);
54 }
55 
56 int main(int argc, char const *argv[])
57 {
58     BiTree T;
59     createBiTree(&T);
60     printf("先序遍历:
");
61     preOrder(T);
62     printf("
中序遍历:
");
63     InOrder(T);
64     printf("
后序遍历:
");
65     PostOrder(T);
66     //ABC  DE G  F   
67     return 0;
68 }

结果:

技术图片

 

 注:chcp 65001解决终端输出中文乱码问题。

 

树的代码详析在下一篇中进行。

 

                          技术图片

 

 

以上是关于二叉树的实现以及三种遍历方法--代码的主要内容,如果未能解决你的问题,请参考以下文章

遍历二叉树的三种方法

二叉树的遍历

树二叉树遍历算法(深度优先广度优先遍历,前序中序后序层次)及Java实现

二叉树遍历(前序中序后序层次深度优先广度优先遍历)

二叉树的遍历

java实现二叉树的构建以及3种遍历方法(转)