数据结构-二叉树的存储结构和遍历.ppt
《数据结构-二叉树的存储结构和遍历.ppt》由会员分享,可在线阅读,更多相关《数据结构-二叉树的存储结构和遍历.ppt(56页珍藏版)》请在三一办公上搜索。
1、二叉树的存储结构和遍历,二叉树的遍历,二叉树的存储结构,小结和作业,顺序存储,二叉链表,三叉链表,链式存储,问题的提出,递归遍历算法,遍历的应用实例,二叉树的顺序存储,顺序存储是用一组连续的存储单元存放数据,顺序存储要求数据是线性结构,二叉树是非线性结构,如何把二叉树转换为线性结构,而且保持结点之间的父/子关系?,二叉树的顺序存储,A,C,G,B,D,E,F,K,L,H,J,I,M,N,O,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,满二叉树:从上到下,从左往右依次编号,二叉树的顺序存储,0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15,数
2、组的下标,也是结点的编号,0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15,二叉树的顺序存储,完全二叉树:从上到下,从左往右依次编号,0 1 2 3 4 5 6 7 8 9 10,二叉树的顺序存储,一般的二叉树:想象成一个完全二叉树,0,0,0,0,0,0,0,0,二叉树的顺序存储,0,0,0,0,0,0,0,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,二叉树的顺序存储,0 1 2 3 4 5 6 7 8 9 10 11 12 13 14,0 1 2 3 4 5 6 7 8 9 10 11 12 13 14,如何知道有无数据?,#define
3、 MAX_TREE_SIZE 100/二叉树的最大结点数typedef TElemType SqBiTreeMAX_TREE_SIZE;/1号单元存储根结点SqBiTree bt;,二叉树的顺序存储,#define MAX_TREE_SIZE 100/二叉树的最大结点数typedef struct TElemType dataMAX_TREE_SIZE;char flagMAX_TREE_SIZE;SqBiTree;,二叉树的顺序存储,适用于一般的二叉树,链式存储二叉链表,二叉链表的结点结构:,左指针域,指向当前结点的左子树,数据域,存储当前结点的取值信息,右指针域,指向当前结点的右子树,指向
4、二叉树根结点,头指针:,前述二叉树的二叉链表如下所示:,A,F,E,C,D,B,root,链式存储二叉链表,typedef struct BiTNode/结点结构 TElemType data;struct BiTNode*lchild,*rchild;/左右孩子指针 BiTNode,*BiTree;,结点结构:,二叉链表的C 语言类型描述如下:,左指针域,数据域,右指针域,链式存储二叉链表,三叉链表的结点结构:,指向双亲结点的指针域,左指针域,数据域,右指针域,链式存储三叉链表,root,E,二叉树的三叉链表表示:,链式存储三叉链表,typedef struct TriTNode TElem
5、Type data;struct TriTNode*lchild,*rchild;struct TriTNode*parent;TriTNode,*TriTree;,三叉链表的C 语言类型描述如下:,结点结构:,/结点结构,/左右孩子指针,/双亲指针,链式存储三叉链表,问题的提出,在实际应用中,经常需要在二叉树中查找具有某些特征的结点,或者对树中的全部结点逐一进行某种处理,这就提出了二叉树的遍历的问题。,问题的提出,定义:顺着某一条搜索路径巡访二叉树中的结点,使得每个结点均被访问一次,而且仅被访问一次。,作用:遍历的目的是线性化,使二叉树中的结点能够按照某种次序排列在一个线性队列上,便于处理。
6、,问题的提出,线性结构的遍历:因为每个结点均只有一个后继,所以只有一条搜索路径。,二叉树的遍历:二叉树是非线性结构,每个结点有两个后继,则存在如何遍历即按什么样的搜索路径进行遍历的问题。,问题的提出,二叉树存在下述三条搜索路径:,1先上后下的按层次遍历;2先左(子树)后右(子树)的遍历;DLR,LDR,LRD3先右(子树)后左(子树)的遍历。DRL,RDL,RLD,先序(根)遍历,根,左子树,右子树,若二叉树为空树,则空操作;否则,(1)访问根结点(2)先序遍历左子树(3)先序遍历右子树,先序(根)遍历,A,B,C,D,E,F,G,H,K,A,B,C,D,E,F,G,H,K,A,B C D,E
7、 F G H K,课堂练习,写出先序遍历的结果,void Preorder(BiTree T,void(*visit)(TElemType/遍历右子树,先序遍历,中序(根)遍历,左子树,右子树,根,根,左子树,右子树,若二叉树为空树,则空操作;否则,(1)中序遍历左子树;(2)访问根结点;(3)中序遍历右子树,中序(根)遍历,A,B,C,D,E,F,G,H,K,A,B,C,D,E,F,G,H,K,A,B D C,E H G K F,中序遍历,void Inorder(BiTree T,void(*visit)(TElemType/遍历右子树,后序(根)遍历,左子树,右子树,根,根,左子树,右子
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 二叉 存储 结构 遍历

链接地址:https://www.31ppt.com/p-6296801.html