二叉樹的實現以及三種遍歷方法--代碼


 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("先序遍歷:\n");
61     preOrder(T);
62     printf("\n中序遍歷:\n");
63     InOrder(T);
64     printf("\n后序遍歷:\n");
65     PostOrder(T);
66     //ABC  DE G  F   
67     return 0;
68 }

結果:

 

 注:chcp 65001解決終端輸出中文亂碼問題。

 

樹的代碼詳析在下一篇中進行。

 

                          

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM