- 4
- 0
- 约1.15万字
- 约 92页
- 2021-11-03 发布于广东
- 举报
2021/6/30 2021/6/30 6.6.3 森林与二叉树之间的转换 图6.18 森林转换为二叉树 2021/6/30 1. 森林转换为二叉树 森林转换为二叉树的步骤为: (1) 将森林中每棵子树转换成相应的二叉树,形成有若干二叉树的森林。 (2) 按森林图形中树的先后次序,依次将后边一棵二叉树作为前边一棵二叉树根结点的右子树,这样整个森林就生成了一棵二叉树,实际上第一棵树的根结点便是生成后的二叉树的根结点。图6.18是森林转化为二叉树的示例。 2021/6/30 6.4.1 先序遍历 先序遍历可以递归地描述如下: 如果二叉树为空,则空操作,否则: ① 访问根结点; ② 按先序次序遍历左子树; ③ 按先序次序遍历右子树。 先序遍历的递归算法如下: 2021/6/30 /*算法描述6.2 先序遍历的递归算法*/ void preorder(BTlink * p) { if(p!=NULL) {printf(%c\n,p-data); /*访问根结点*/ preorder(p-lch); /*按先根次序遍历左子树*/ preorder(p-rch); /*按先根次序遍历右子树*/ } } /*preorder*/ 2021/6/30 图6.11 遍历序列示例 2021/6/30 6.4.2 中序遍历 中序遍历可以递归地描述如下: 如果二叉树为空,则空操作,否则: ① 按中序次序遍历左子树, ② 访问根结点, ③ 按中序次序遍历右子树。 中序遍历递归算法如下: 2021/6/30 /*算法描述6.3 中序遍历的递归算法*/ void inorder(BTlink *p) {if (p!=NULL) {inorder(p-lch); /*中序遍历左子树*/ printf(%c\n,p-data); /*访问根结点*/ inorder(p-rch); /*中序遍历右子树*/ } }/*inorder*/ 例如,图6.11(a)所示二叉树的中根遍历序列为BAC, 图6.11(b)所示二叉树的中根遍历序列为BCAEDF。 2021/6/30 6.4.3 后根遍历 后根遍历可以递归地描述如下: 如果二叉树为空,则空操作,否则: ① 后序遍历左子树; ② 后序遍历右子树; ③ 访问根结点。 后根遍历递归算法如下: 2021/6/30 /*算法描述6.4 后序遍历的递归算法*/ void postorder (BTlink* p ) { if ( p!= NULL ) { postorder ( p-lch); /*后序遍历左子树*/ postorder ( p-rch ); /*后根遍历右子树*/ printf ( %c\n,p-data); /*访问根结点*/ } } /*postorder*/ 例如,图6.11(a)所示二叉树的后序遍历序列为BCA, 图6.11(b)所示二叉树的后根遍历序列为CBEFDA。 2021/6/30 6.4.4 思考 已知一棵二叉树的前序跟中序遍历序列,是否能求得这棵二叉树? 2021/6/30 6.4.5 二叉树的应用 二叉树的初始化 void CreateBinTree (BinTree *T)????? { //构造二叉链表。T是指向根指针的指针,故修改*T就修改了实参(根指针)本身??????? char ch;??????? if((ch=getchar())==) T=NULL; //读人空格,将相应指针置空???????? else{ //读人非空格????????????? *T=(BinTNode *)malloc(sizeof(BinTNode)); //生成结点????????????? (*T)-data=ch;????????????? CreateBinTree((*T)-lchild); //构造左子树????????????? CreateBinTree((*T)-rchild); //构造右子树???????????? }????? } 2021/6/30 6.5 线索二叉树 6.5.1 线索二叉树的基本概念 我们发现,具有n个结点的二叉树中有n –
您可能关注的文档
最近下载
- 2026开封市第三届职业技能大赛汽车技术(世赛选拔)项目技术工作文件.pdf VIP
- 站用交直流电源系统技术规范第3部分:直流电源系统.pdf VIP
- 2024年初级会计职称《经济法基础》精讲课件.pptx VIP
- 2025年湖南机电职业技术学院单招职业技能测试题库及参考答案.docx VIP
- 2025年浙江机电职业技术学院单招(语文)测试试卷.docx VIP
- 泰国和中国合同模板(3篇).docx VIP
- 2025年湖南机电职业技术学院单招职业技能测试题库参考答案.docx VIP
- (2026春新版)人教版二年级数学下册《第三单元 万以内数的认识》教案.docx VIP
- 四年级小学下书法设计教案.doc VIP
- 烟气余热利用的热管式换热器设计(毕业论文).docx VIP
原创力文档

文档评论(0)