遍历二叉树与线索二叉树.ppt
《遍历二叉树与线索二叉树.ppt》由会员分享,可在线阅读,更多相关《遍历二叉树与线索二叉树.ppt(20页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、6.3 6.3 遍历二叉树遍历二叉树和线索二叉树和线索二叉树6.3.1 6.3.1 遍历二叉树遍历二叉树遍历定义:遍历定义:遍历用途:遍历用途:遍历方法:遍历方法:指按某条搜索路线遍访每个结点且指按某条搜索路线遍访每个结点且不重复(又称周游)。不重复(又称周游)。它是树结构插入、删除、修改、查找它是树结构插入、删除、修改、查找和排序运算的前提,和排序运算的前提,是二叉树一切运是二叉树一切运算的基础和核心。算的基础和核心。对每个结点的查看通常都是对每个结点的查看通常都是“先左后先左后右右”。(无论是先序、中序还是后序)。(无论是先序、中序还是后序)例例1 1:先序先序遍历的结果是:遍历的结果是:
2、中序中序遍历的结果是:遍历的结果是:后序后序遍历的结果是:遍历的结果是:A B CD ED B E A CD B E A CD E B C AD E B C A口诀:口诀:DLR先序遍历,即先根再左、右先序遍历,即先根再左、右LDR中序遍历,即先左再根后右中序遍历,即先左再根后右LRD后序遍历,即先左、右再根后序遍历,即先左、右再根A A B B D D E E C C层次遍历层次遍历:ABCDE练习练习1 1、任何一棵二叉树的叶子结点在先序、中序、后序遍历、任何一棵二叉树的叶子结点在先序、中序、后序遍历、任何一棵二叉树的叶子结点在先序、中序、后序遍历、任何一棵二叉树的叶子结点在先序、中序、后
3、序遍历序列中的相对次序不发生改变。(序列中的相对次序不发生改变。(序列中的相对次序不发生改变。(序列中的相对次序不发生改变。()。)。)。)。2 2、已知某二叉树的先序序列为、已知某二叉树的先序序列为、已知某二叉树的先序序列为、已知某二叉树的先序序列为ABDCEABDCE,它可能的中序序,它可能的中序序,它可能的中序序,它可能的中序序列为(列为(列为(列为()A.BDAEC B.BCADE A.BDAEC B.BCADE C.CBADE D.BEACD C.CBADE D.BEACD3 3、已知某二叉树的后序遍历序列是、已知某二叉树的后序遍历序列是、已知某二叉树的后序遍历序列是、已知某二叉树的
4、后序遍历序列是dabecdabec,中序遍历序列,中序遍历序列,中序遍历序列,中序遍历序列是是是是debac,debac,它的前序遍历序列是(它的前序遍历序列是(它的前序遍历序列是(它的前序遍历序列是()A.acbed B.decab A.acbed B.decab C.deabc D.cedba C.deabc D.cedba4 4、一棵二叉树结点的(、一棵二叉树结点的(、一棵二叉树结点的(、一棵二叉树结点的()可唯一确定一棵二叉树。)可唯一确定一棵二叉树。)可唯一确定一棵二叉树。)可唯一确定一棵二叉树。A.A.先序序列和中序序列先序序列和中序序列先序序列和中序序列先序序列和中序序列 C.C
5、.后序序列后序序列后序序列后序序列 C.C.先序序列和后序序列先序序列和后序序列先序序列和后序序列先序序列和后序序列 D.D.中序序列中序序列中序序列中序序列5 5、图示在黑板上。写出其先序序列、中序序列和后序、图示在黑板上。写出其先序序列、中序序列和后序、图示在黑板上。写出其先序序列、中序序列和后序、图示在黑板上。写出其先序序列、中序序列和后序序列。序列。序列。序列。6 6、某、某、某、某n0n0个结点的二叉树的先序序列和后序序列正好相个结点的二叉树的先序序列和后序序列正好相个结点的二叉树的先序序列和后序序列正好相个结点的二叉树的先序序列和后序序列正好相反,则该二叉树一定不是(反,则该二叉树
6、一定不是(反,则该二叉树一定不是(反,则该二叉树一定不是()的二叉树。)的二叉树。)的二叉树。)的二叉树。A.A.任一结点无左孩子任一结点无左孩子任一结点无左孩子任一结点无左孩子 B.B.任一结点无又孩子任一结点无又孩子任一结点无又孩子任一结点无又孩子 C.C.深度为深度为深度为深度为n D.n D.存在度为存在度为存在度为存在度为2 2的结点的结点的结点的结点练习练习abadefgff n个结点个结点.例例2 2:画出所有:画出所有中序中序遍历序列和遍历序列和后序后序遍历序列一致的遍历序列一致的 二叉树的所有形态二叉树的所有形态.分析:中序遍历分析:中序遍历:LDR-LD:LDR-LD 后序
7、遍历后序遍历:LRD-LD.:LRD-LD.练习练习7 7、(、(、(、()的二叉树先序遍历和中序遍历正好相同)的二叉树先序遍历和中序遍历正好相同)的二叉树先序遍历和中序遍历正好相同)的二叉树先序遍历和中序遍历正好相同.()的二叉树后序遍历和中序遍历正好相同)的二叉树后序遍历和中序遍历正好相同)的二叉树后序遍历和中序遍历正好相同)的二叉树后序遍历和中序遍历正好相同.()的二叉树先序遍历和中序遍历正好相反)的二叉树先序遍历和中序遍历正好相反)的二叉树先序遍历和中序遍历正好相反)的二叉树先序遍历和中序遍历正好相反.()的二叉树后序遍历和中序遍历正好相反的二叉树后序遍历和中序遍历正好相反的二叉树后序
8、遍历和中序遍历正好相反的二叉树后序遍历和中序遍历正好相反.前序和后前序和后前序和后前序和后序遍历结果相同的二叉树(序遍历结果相同的二叉树(序遍历结果相同的二叉树(序遍历结果相同的二叉树().8 8、对二叉树的结点从、对二叉树的结点从、对二叉树的结点从、对二叉树的结点从1 1开始连续编号,要求每个结点开始连续编号,要求每个结点开始连续编号,要求每个结点开始连续编号,要求每个结点的编号大于其左孩子(如果有的话)的编号,而小的编号大于其左孩子(如果有的话)的编号,而小的编号大于其左孩子(如果有的话)的编号,而小的编号大于其左孩子(如果有的话)的编号,而小于其右孩子(如果有的话)的编号,则可以采用(于
9、其右孩子(如果有的话)的编号,则可以采用(于其右孩子(如果有的话)的编号,则可以采用(于其右孩子(如果有的话)的编号,则可以采用()次序的遍历实现二叉树的结点编号。)次序的遍历实现二叉树的结点编号。)次序的遍历实现二叉树的结点编号。)次序的遍历实现二叉树的结点编号。A.A.先序先序先序先序 B.B.中序中序中序中序 C.C.后序后序后序后序 D.D.层序遍历层序遍历层序遍历层序遍历由此可以看出:由此可以看出:由此可以看出:由此可以看出:(1 1 1 1)遍历操作实际上是将非线性结构线性化的过程,)遍历操作实际上是将非线性结构线性化的过程,)遍历操作实际上是将非线性结构线性化的过程,)遍历操作实
10、际上是将非线性结构线性化的过程,其结果为线性序列;其结果为线性序列;其结果为线性序列;其结果为线性序列;(2 2 2 2)遍历操作是一个递归的过程,因此,这三种遍历)遍历操作是一个递归的过程,因此,这三种遍历)遍历操作是一个递归的过程,因此,这三种遍历)遍历操作是一个递归的过程,因此,这三种遍历操作的算法可以用递归函数实现。操作的算法可以用递归函数实现。操作的算法可以用递归函数实现。操作的算法可以用递归函数实现。先序遍历递归算法:先序遍历递归算法:先序遍历递归算法:先序遍历递归算法:DLR (BiTree T)if(T)/非空二叉树非空二叉树 printf(“%d”,T-data);/访问根结
11、点访问根结点D D DLR(T-lchild);/递归遍历左子树递归遍历左子树 DLR(T-rchild);/递归遍历右子树递归遍历右子树 return(0);中序遍历递归算法:中序遍历递归算法:中序遍历递归算法:中序遍历递归算法:LDR(BiTree T)if(T)LDR(T-lchild);printf(“%d”,T-data);LDR(T-rchild);return(0);(1)从前面的三种遍历算法可以知道:如果将从前面的三种遍历算法可以知道:如果将printf语句抹去,从递归的角度看,这三种算法是完全相同语句抹去,从递归的角度看,这三种算法是完全相同的,或者说这三种遍历算法的的,或者
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 遍历 二叉 线索
限制150内