書式#include <stdio.hに>
する#include <STDLIB.H>のtypedef構造体ノード
{
charデータ。
ノード* Lchildをストラクト。
ノード* Rchildをストラクト。
構造体のノード*親。
} BiTNode、* BiTree。
BiTree CreateBiTree(){
CHAR CH。
BiTree T;
scanf関数( "%のC"、&CH);
(CH == '#')T = NULLであれば、
他
{
T =(BiTree)はmalloc(はsizeof(BiTNode))。
T->データ= CH;
T-> Lchild = CreateBiTree()。
T-> Rchild = CreateBiTree()。
}
Tを返す; //
}
//先序遍历二叉树
空隙PreOrderTraverse(BiTree T)
{
IF(T)
{
のprintf( "%のC"、T->データ);
PreOrderTraverse(T-> Lchild);
PreOrderTraverse(T-> Rchild);
}
}
前順で//バイナリツリー
空隙InOrderTraverse(BiTree T)
{
IF(T)
{
InOrderTraverse(T-> Lchild);
のprintf( "%のC"、T->データ);
InOrderTraverse(T-> Rchild);
}
}
//バイナリツリー横断後に
ボイドPostOrderTraverseを(BiTree T)
{
IF(T)
{
PostOrderTraverse (T-> Lchild);
PostOrderTraverse(T-> Rchild);
のprintf( "%のC"、T->データ)。
}
}
INTメイン()
{
BiTree T;
T = CreateBiTree();
のprintf( "前順走査である:\ n");
PreOrderTraverse(T);
のprintf( "\ N-");
のprintf(「トラバーサル配列である:\ nは");
InOrderTraverse(T);
のprintf(" \ N- ");
のprintf("後順である:\ N- ");
PostOrderTraverse(T)。
}
/*这里的输入要严格按照正确的顺序才能结束.这里要用到二叉树的一个性质,就是说对于有n个节点的二叉树,就有n+1个空域,在这里即为如果你输入了n个元素,那么一定要有n+1个#才会结束迭代过程.*/
创建二叉树的时候 用的是先序遍历 要根据先序的特征来确定#的位置