- 1、本文档共56页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
二叉与树的遍历和应用
二叉树的遍历和应用;预备知识—递归;什么是递归?;举例:查词典;递归解决方案的一般形式;举例1:n的阶乘;举例2:逆置字符串;举例3:Hanoi塔;举例4:兔子繁殖(递归法);举例4:兔子繁殖(迭代法);二叉树的遍历;一、问题的提出; 顺着某一条搜索路径巡访二叉树
中的结点,使得每个结点均被访问一
次,而且仅被访问一次。; “遍历”是任何类型均有的操作,
对线性结构而言,只有一条搜索路
径(因为每个结点均只有一个后继),
故不需要另加讨论。而二叉树是非
线性结构,;层次遍历;前序周游(preorder traversal)
若二叉树非空, 则依次进行如下操作:
(1) 访问根结点;
(2) 前序周游左子树;
(3) 前序周游右子树。;中序周游(inorder traversal)
若二叉树非空, 则依次进行如下操作:
(1) 中序周游左子树;
(2) 访问根结点;
(3) 中序周游右子树。;后序周游(postorder traversal)
若二叉树非空, 则依次进行如下操作:
(1) 后序周游左子树;
(2) 后序周游右子树;
(3) 访问根结点。;已知二叉树的前序和中序周游序列如下, 画出该二叉树。
前序周游序列: ABCDEFGHIJ
中序周游序列: CBEDAGHFJI ;已知二叉树的后序和中序周游序列如下, 画出该二叉树。
后序周游序列: ABCDEFG
中序周游序列: ACBGEDF ;画出中序周游序列为ABCDEFGHIJKL的完全二叉树。;上面三种周游方法都可以用递归函数来实现
例如, 前序周游二叉树的函数为:
void preorder(BinNodeElem* subroot)
{
if (subroot == NULL) return;
visit(subroot);
preorder(subroot-left());
preorder(subroot-right());
};课后思考;遍历算法的应用举例;1、统计二叉树中叶子结点的个数;void CountLeaf (BiTree T, int count){
if ( T ) {
if ((!T-lchild) (!T-rchild))
count++; // 对叶子结点计数
CountLeaf( T-lchild, count);
CountLeaf( T-rchild, count);
} // if
} // CountLeaf;Traversal Example;2、求二叉树的深度;求二叉树的深度的
伪代码设计。
;二叉树的存储;存于顺序存储结构;以字符串的形式 根 左子树 右子树
定义一棵二叉树;Status CreateBiTree(BiTree T) {
scanf(ch);
if (ch== ) T = NULL;
else {
if (!(T = (BiTNode *)malloc(sizeof(BiTNode))))
exit(OVERFLOW);
T-data = ch; // 生成根结点
CreateBiTree(T-lchild); // 构造左子树
CreateBiTree(T-rchild); // 构造右子树
}
return OK; } // CreateBiTree;A B C D ; 仅知二叉树的先序序列“abcdefg” 不能唯一确定一棵二叉树,;a b c d e f g;void CrtBT(BiTree T, char pre[], char ino[],
int ps, int is, int n ) {
// 已知pre[ps..ps+n-1]为二叉树的先序序列,
// ins[is..is+n-1]为二叉树的中序序列,本算
// 法由此两个序列构造二叉链表
if (n==0) T=NULL;
else {
k=Search(ino, pre[ps]); // 在中序序列中查询
if (k== -1) T=NULL;
else { }
} //
}
您可能关注的文档
- 中职与基础英语unit One Nice to meet you.ppt
- 中职与英语基础模块上册Unit_1单元测试题.doc
- 中考与英语词汇辨析.ppt
- 中职与英语试卷分析策略2012.ppt
- 中职与计算机英语《Unit1 PC System 》(第一课时)教学设计.doc
- 中英与地名翻译规则.doc
- 中英与文个人简历模板和常用词汇.doc
- 中职与英语基础模块第一册unit05.ppt
- 中英与文科技论文写作_09_致谢.ppt
- 中职与英语教材分析与使用.ppt
- 半导体材料性能提升技术突破与应用案例分析报告.docx
- 半导体设备国产化政策支持下的关键技术突破与应用前景报告.docx
- 剧本杀市场2025年区域扩张策略研究报告.docx
- 剧本杀行业2025人才培训体系构建中的市场需求与供给分析.docx
- 剧本杀行业2025年人才培训行业人才培养模式创新与探索.docx
- 剧本杀行业2025年内容创作人才需求报告.docx
- 剧本杀行业2025年区域市场区域剧本市场消费者满意度与市场竞争力研究报告.docx
- 剧本杀市场2025年区域竞争态势下的区域合作策略分析报告.docx
- 剧本杀行业2025人才培训与行业人才培养模式创新.docx
- 剧本杀行业剧本创作人才心理素质培养报告.docx
文档评论(0)