数据结构(线性表、栈、队列、二叉树、图).ppt
《数据结构(线性表、栈、队列、二叉树、图).ppt》由会员分享,可在线阅读,更多相关《数据结构(线性表、栈、队列、二叉树、图).ppt(40页珍藏版)》请在三一办公上搜索。
1、常见数据结构,线性表、栈、队列、二叉树、图,(一)、线性表,线性表是n个类型相同的数据元素的有限序列,数据元素之间是一对一的关系,即每个数据元素最多有一个直接前驱和一个直接后继,如图2.1所示。例如:英文字母表(A,B,Z)就是一个简单的线性表,表中的每一个英文字母是一个数据元素,,每个元素之间存在唯一的顺序关系,如在英文字母表字母B的前面是字母A,而字母B后面是字母C。,(二)、栈,栈是允许在一端进行插入和删除操作的特殊线性表。允许进行插入和删除操作的一端称为栈顶(top),另一端为栈底(bottom);栈底固定,而栈顶浮动;栈中元素个数为零时称为空栈。栈结构也称为后进先出表(LIFO)。,
2、队列(Queue)的定义 队列是限定仅在表的一端进行插入,在另一端进行删除操作的线性表。允许插入的一端称为队尾(rear),允许删除的一端称为队首(front)。队列的插入操作,称为入队;队列的删除操作,称为出队。当队列中没有元素时称为空队列。设队列q=(a0,a1,a2,an-1),则a0称为队头元素,an-1称为队尾元素。元素按a0,a1,a2,an-1的次序入队,出队也只能按照这个次序。队列和栈相反,队列的操作是按先进先出(First In First Out)的原则进行的,又称为先进先出的线性表(简称FIFO表)。,三、队列,(四)、二叉树 类型与定义,二叉树或为空树;或是由一个根结点
3、加上两棵分别称为左子树和右子树的、互不交的二叉树组成。,根结点,左子树,右子树,E,F,二叉树的五种基本形态:,N,空树,只含根结点,N,N,N,L,R,R,右子树为空树,L,左子树为空树,左右子树均不为空树,介绍基本术语,叶子结点结点 结点总数深度层,结点的层次从根开始定义起,根为第一层,根的孩子为第二层,依次累计。树中结点的最大层次称为树的深度或高度。,性质 1:在二叉树的第 i 层上至多有2i-1 个结点。(i1),用归纳法证明:归纳基:归纳假设:归纳证明:,i=1 层时,只有一个根结点,2i-1=20=1;,假设对所有的 j,1 j i,命题成立;,二叉树上每个结点至多有两棵子树,则第
4、 i 层的结点数=2i-2 2=2i-1。,性质 2:深度为 k 的二叉树上至多含 2k-1 个结点(k1),证明:,基于上一条性质,深度为 k 的二叉树上的结点数至多为 20+21+2k-1=2k-1,性质 3:对任何一棵二叉树,若它含有n0 个叶子结点、n2 个度为 2 的结点,则必存在关系式:n0=n2+1,证明:,设 二叉树上结点总数 n=n0+n1+n2,又 二叉树上分支总数 b=n1+2n2,而 b=n-1=n0+n1+n2-1,由此,n0=n2+1,两类特殊的二叉树:,满二叉树:指的是深度为k且含有2k-1个结点的二叉树。,完全二叉树:树中所含的 n 个结点和满二叉树中编号为 1
5、 至 n 的结点一一对应。,性质 4:具有 n 个结点的完全二叉树的深度为 log2n+1,证明:,设 完全二叉树的深度为 k,则根据第二条性质得 2k-1 n 2k,即 k-1 log2 n k,因为 k 只能是整数,因此,k=log2n+1,满二叉树的叶节点为N,则它的节点总数()A、N B、2N C、2N-1 D、2N+1 E、2N-1,高度为n的均衡的二叉树是指:如果去掉叶结点及相应的树枝,它应该是高度为n-1的满二叉树。在这里,树高等于叶结点的最大深度,根结点的深度为0,如果某个均衡的二叉树共有2381个结点,则该树的树高为()。A.10 B.11 C.12 D.13,二叉树的遍历,
6、顺着某一条搜索路径巡访二叉树中的结点,使得每个结点均被访问一次,而且仅被访问一次。,一、问题的提出,“访问”的含义可以很广,如:输出结点的信息等。,对“二叉树”而言,可以有三条搜索路径:,1先上后下的按层次遍历;2先左(子树)后右(子树)的遍历;3先右(子树)后左(子树)的遍历。,二、先左后右的遍历算法,先(根)序的遍历算法,中(根)序的遍历算法,后(根)序的遍历算法,根,左子树,右子树,根,根,根,根,根,若二叉树为空树,则空操作;否则,(1)访问根结点;(2)先序遍历左子树;(3)先序遍历右子树。,先(根)序的遍历算法:,若二叉树为空树,则空操作;否则,(1)中序遍历左子树;(2)访问根结
7、点;(3)中序遍历右子树。,中(根)序的遍历算法:,若二叉树为空树,则空操作;否则,(1)后序遍历左子树;(2)后序遍历右子树;(3)访问根结点。,后(根)序的遍历算法:,例如:,先序序列:,中序序列:,后序序列:,A B C D E F G H K,B D C A E H G K F,D C B H K G F E A,前缀、后缀表达式,二叉树的应用。中缀表达式转换后缀表达式从左向右扫描表达式、运算数送到输出队列、运算符进栈、如果运算优先级大于栈顶元素直接进栈,如果运算优先级小于或等于栈顶元素,则先弹出栈顶元素,再进栈、左括号直接进栈、右括号则依次弹出栈中的元素,直到遇到第一个左括号为止。有
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 线性 队列 二叉
链接地址:https://www.31ppt.com/p-4980222.html