第十周 二叉树遍历的递归算法
2015-11-13 08:29
155 查看
/* Copyright (c++)2015,烟台大学计算机与控制工程学院 All rights reserved. 文件名称:项目.cbp 作 者:纪冬雪完成日期:2015年11月13日 版 本 号:v1.0 问题描述:实现二叉树的先序、中序、后序遍历的递归算法,并对用”A(B(D,E(H(J,K(L,M(,N))))),C(F,G(,I)))”创建 的二叉树进行测试。 请利用二叉树算法库。 输入描述:无 程序输出:测试数据 */
二叉树算法库 啦啦啦
main函数:
int main() { BTNode *b; CreateBTNode(b,"A(B(D,E(H(J,K(L,M(,N))))),C(F,G(,I)))"); printf("二叉树b:"); DispBTNode(b); printf("\n"); printf("先序遍历序列:\n"); PreOrder(b); printf("\n"); printf("中序遍历序列:\n"); InOrder(b); printf("\n"); printf("后序遍历序列:\n"); PostOrder(b); printf("\n"); DestroyBTNode(b); return 0; }
实现遍历:
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); //访问根节点 } } void PreOrder(BTNode *b) //先序遍历的递归算法 { if (b!=NULL) { printf("%c ",b->data); //访问根节点 PreOrder(b->lchild); //递归访问左子树 PreOrder(b->rchild); //递归访问右子树 } }
运行结果:
总结:
利用二叉树算法库,完成二叉树的先序中序和后序的遍历。先在纸上清理一遍思路,有助于理解这个程序。
相关文章推荐
- 第10周项目3用二叉树遍历思想解决问题
- Docker逐渐火起来了,收集了一些这方面的书
- 第十周实践项目3 - 利用二叉树遍历思想解决问题
- 郁闷啊,买错书了。。。。
- Python学习笔记(一)--- Matplotlib
- ubuntu下恢复rm删除的数据
- Activity之间数据的传递方式
- 第9周 项目4-广义表算法库及应用(1)
- 双系统怎么安装Win10 TH2正式版? Win7、Win8.1双系统图文安装教程
- 第十一周项目1—— 二叉树算法验证(1)
- java程序——输入判断成绩
- VC++ GDI 总结 一一 CBitmap类
- 第8周 项目5-计数的模式匹配
- 新手教程 Win10 TH2正式版ISO镜像安装方法大全
- 第十周实践项目2--二叉树遍历的递归算法
- 第十一周项目1-二叉树算法验证(4)
- 男人一生要闯十道关
- 第11周、项目2—用二叉树求解代数表达式
- 二叉树构造算法的验证
- 没收到Win10 TH2更新怎么办?没收到Win10 TH2更新原因以及解决方法