生活随笔
收集整理的這篇文章主要介紹了
二叉树的建立以及先序、中序、后序遍历C语言实现---【递归方式】
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
下圖的二叉樹作為測試例,輸出前中后三種遍歷方式下的結果。
先序遍歷: A B D C
中序遍歷: B D A C
后序遍歷: D B C A
#include "stdio.h"
#include "stdlib.h"#undef OK
#define OK 1
#undef ERROR
#define ERROR 0
#undef OVERFLOW
#define OVERFLOW -2
#undef NULL
#define NULL 0
typedef char TElemType
;
typedef int Status
;
typedef struct BiTNode
{ TElemType data
;struct BiTNode
*lchild
, *rchild
;
} BiTNode
, *BiTree
;
Status
CreateBiTree(BiTree
&T
)
{char ch
;scanf("%c", &ch
);if (ch
== '#')T
= NULL;else{T
= (BiTNode
*)malloc(sizeof(BiTNode
));T
->data
= ch
;CreateBiTree(T
->lchild
);CreateBiTree(T
->rchild
);}return OK
;
}
void PreOrder(BiTree T
)
{if (T
){printf("%4c", T
->data
); PreOrder(T
->lchild
);PreOrder(T
->rchild
);}
}
void InOrder(BiTree T
)
{if (T
){InOrder(T
->lchild
);printf("%4c", T
->data
);InOrder(T
->rchild
);}
}
void PostOrder(BiTree T
)
{if (T
){PostOrder(T
->lchild
);PostOrder(T
->rchild
);printf("%4c", T
->data
);}
}int main()
{BiTree T
;int s
= 0, m
= 0, n
= 0, d
= 0;T
= NULL;printf("\n 請按先序次序輸入各結點的值,以#表示空樹:\n");CreateBiTree(T
);printf("二叉樹已建立完畢!\n");printf("\n 先序遍歷:");PreOrder(T
);printf("");printf("\n 中序遍歷:");InOrder(T
);printf("");printf("\n 后序遍歷:");PostOrder(T
);printf("\n");return 0;
}
與50位技術專家面對面20年技術見證,附贈技術全景圖
總結
以上是生活随笔為你收集整理的二叉树的建立以及先序、中序、后序遍历C语言实现---【递归方式】的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。