/*
烟台大学计算机学院
文件名称:xiangmu.cpp
作者:李恩
完成日期:2017年11月9日
问题描述:实现二叉树的先序、中序、后序遍历的递归算法,
并对用”A(B(D,E(H(J,K(L,M(,N))))),C(F,G(,I)))”创建的二叉树进行测试。
输入描述:无
输出描述:输出二叉树先中后序遍历结果
*/
#include <stdio.h>
#include "../btree.h"//用到了btree.h
void PreOrder(BTNode *b) //先序遍历的递归算法
{
if (b!=NULL)
{
printf("%c ",b->data); //访问根节点
PreOrder(b->lchild); //递归访问左子树
PreOrder(b->rchild); //递归访问右子树
}
}
void InOrder(BTNode *b) //中序遍历的递归算法
{
if (b!=NULL)
{
InOrder(b->lchild); //递归访问左子树
printf("%c ",b->data); //访问根节点
InOrder(b->rchild); //递归访问右子树
}
}
void PostOrder(BTNode *b) //后序遍历的递归算法
{
if (b!=NULL)
{
PostOrder(b->lchild); //递归访问左子树
PostOrder(b->rchild); //递归访问右子树
printf("%c ",b->data); //访问根节点
}
}
int main()
{
BTNode *p;
CreateBTNode(p,"A(B(D,E(H(J,K(L,M(,N))))),C(F,G(,I)))");
printf("先序:");
PreOrder(p);
printf("\n");
printf("中序:");
InOrder(p);
printf("\n");
printf("后序:");
PostOrder(p);
printf("\n");
DestroyBTNode(p);
return 0;
}
第九周项目二
最新推荐文章于 2023-04-20 10:22:56 发布