- /*
- 烟台大学计算机学院
- 文件名称: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;
- }
第九周项目2
最新推荐文章于 2024-01-25 00:15:00 发布