- 24
- 0
- 约1.9万字
- 约 83页
- 2015-12-24 发布于广东
- 举报
p 该点即是 3、 中序遍历中序穿线二叉树inthrtree(p)基本思想:首先找到中序遍历下的第一个结点(从根结点出发,沿着左指针不断往左下走,直到左指针为空,到达“最左下”的结点即可),访问它后,然后不断寻找结点在中序下的后继结点并输出,直至所有的结点均被输出为止。 binthrtree insuccnode(binthrtree p) { /*寻找结点p在中序遍历下的后继结点*/ binthrtree q; if (p-rtag==1) return p-rchild; else { q=p-rchild; while (q-ltag==0) q=q-lchild; return q; } } 3、 中序遍历中序穿线二叉树inthrtree(p)基本思想:首先找到中序遍历下的第一个结点(从根结点出发,沿着左指针不断往左下走,直到左指针为空,到达“最左下”的结点即可),访问它后,然后不断寻找结点在中序下的后继结点并输出,直至所有的结点均被输出为止。 binthrtree insuccnode(binthrtree p) { /*寻找结点p在中序遍历下的后继结点*/ binthrtree q; if (p-rtag==1) return p-rchild; else { q=p-rchild; while (q-ltag==0) q=q-lchild; return q; } } 该点即是 p void inthrtree(binthrtree p) { /*中序遍历中序穿线二叉树p*/ if (p) { /*求二叉树p中序遍历下的第一个结点*/ while (p-ltag==0) p=p-lchild; /*依次遍历各结点*/ do { printf(“%c ”,p-data); p=insuccnode(p); } while (p); } } 找P节点的中序穿线树中中序前驱算法如下: 若p的左指针为线索则返回左指针指示的节点; 若p的左指针为实指针,则其中序前驱为其左子树的中序下的尾点(左子树中右进过程中遇到的第一个线索)。 A B C D E F F的前驱为D,D的前驱为B A的前驱E 后序穿线树中的两个操作 (1)找后序穿线树中的后序前驱 若p的左子树为空,则p-lchild是前驱线索,指示其后序前驱结点。 若p的左子树非空,则p-lchild不是前驱线索,此时,若p的右子树非空,则p的后序前驱必为其右子树的根节点;若p的右子树为空,则其后序前驱为其左孩子。 后序序列:CDBHIGFEA A E F G H I B C D ^ H后序前驱为B, F的后序前驱是G A的后序前驱是E,E的后序前驱是F (2)找后序穿线树中的后序后继 若p为根,p无后序后继; 若p是其双亲的右孩子,则p的后序后继为其双亲节点; 若p是双亲的左孩子,且p无右兄弟时,p的后序节点是其双亲节点; 若p是其双亲的左孩子,但p有右兄弟,则p的后序是其双亲的右子树的后序首点(即该子树中的最左下的结点) 后序序列:CDBHIGFEA E的后序后继为A F的后序后继为E B的后序后继为H A E F G H I B C D ^ 7.7.1 树、森林到二叉树的转换将树或森林转换成其对应二叉树的方法为:(1) 在所有兄弟结点之间添加一条连线,如果 是森林,则在其所有树的树根之间同样也 添加一条连线;(2) 对于树、森林中的每个结点,除保留其到 第一个子女的连线外,撤消其到其它子女 的连线;(3) 将以上得到的树按照顺时针方向旋转45度。 7.7 树、森林和二叉树的转换 a b c d e f g (a) 树到二叉树的转换 a b c d e f g (b)
您可能关注的文档
最近下载
- 2025年会计职称考试《初级会计实务》内部控制与审计基础理论与模拟试题及答案.docx VIP
- 2022年欧洲新生儿呼吸窘迫综合征管理指南更新要点解读.pptx VIP
- 四川省成都市重点中学高一上学期期末物理试卷.docx VIP
- SY∕T 7018-2014 控压钻井系统.pdf VIP
- 四渡赤水战役中的红军情报工作.doc VIP
- 湘教版(2024)八年级上册地理第二章第二节《中国的气候》教学课件.ppt
- 2024-2025学年江苏省天一中学高一上学期期末数学试题及答案.pdf VIP
- 课题申报书:少先队活动与思政教育一体化建设研究.docx VIP
- 2025年信息系统安全专家单点登录系统中的权限提升漏洞分析专题试卷及解析.pdf VIP
- 2025年信息系统安全专家CA人员管理与安全意识专题试卷及解析.pdf VIP
原创力文档

文档评论(0)