概要
主要介绍二叉树相关的代码实现,二叉树遍历算法的具体应用
先序遍历建立二叉链表
void CreateBitree(BiTNode *&T) {
char ch;
scanf (“%c”, &ch);
if (ch==‘#’) T=NULL;
else {
T=(BiTree)malloc(sizeof(BiTNode));
T->data=ch;
CreateBitree(T->lchild);
CreateBitree(T-> rchild);
}
}
首先输入当前根结点的数据,如果是#,则将当前根结点置为NULL,否则,申请一个新结点,存入当前根结点的数据,分别用当前根结点的左指针和由指针进行递归调用,创建左、右子树。
输出二叉树中的叶子结点
void DispLeaf(BiTree T) { //先序遍历二叉树
if(T!=NULL) {
if(T->lchild==NULL && T->rchild==NULL)
printf (“%d”,T->data); //访问叶子结点
DispLeaf (T->lchild); //先序遍历左子树
DispLeaf (T->rchild); //先序遍历右子树
}
}
当二叉树为空时,叶子为0。当二叉树只有一个根结点时,根结点就是叶子结点,输出叶子结点。在其他情况下,输出左子树与右子树