- 1、本文档共65页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
国二公共基础知识 第一章 数据结构与算法1.ppt
第一章 数据结构与算法 主要内容 1.1 算法与数据结构概念 1.2 线性表 1.3 栈和队列 1.4 树和二叉树 1.5 查找 1.6 内部排序 用While语句求计算:s=1+2+3+…+100,代码如下。 main( ) { int i=1,s=0; while(i=100) { s=s+i i=i+1 } }printf(“%d”,s); 设栈S和队列Q的初始状态为空,元素a,b,c,d,e,f依次通过栈S,并且一个元素出栈后即进入队列Q,若出队的顺序为b,d,c,f,e,a,则栈S的容量至少应该为( )(A)3 (B)4 (C)5 (D)6 一个栈的初始状态为空。现将元素1、2、3、4、5、A、B、C、D、E依次入栈,然后再依次出栈,则元素出栈的顺序是( ) (A)12345ABCDE (B)EDCBA54321 (C)ABCDE12345 (D)54321EDCBA 1.5.2 二叉树及其基本性质 二叉树的特点:(1)非空二叉树只有一个根结点;(2)每一个结点最多有两棵子树,且分别称为该结点的左子树与右子树。 2 二叉树的基本性质 性质1 二叉树第i(i≥1)层上至多有2i-1个结点。 证明:根结点在二叉树的第一层上,这层结点数最多为1个,即20 ;第二层上最多有2个结点,即21个;…那么第i层上结点最多有2i-1个。 性质2 深度为k(k≥1)的二叉树至多有2k-1个结点。 证明:由性质(1)可知各层结点最多数目之和为:20+21+22+…+2k-1;由二进制换算关系可得2k–1,因此二叉树树中结点的最大数目为2k-1。 性质3:度为0的结点(即叶子结点)总是比度为2的结点多一个。 证明:设n代表二叉树结点的总数,叶子结点(即度为零的结点)个数为n0,度为1的结点个数为n1,度为2的结点个数为n2。那么 n = n0+n1+n2 (1) 有n个结点的二叉树总边数为n-1条: n-1 = 0*n0+1*n1+2*n2 (2) 将(1)式代入(2)式得:n0 = n2+1 满二叉树是指除最后一层外,每一层上的所有结点有两个子结点,则k层上有2k-1个结点,深度为m的满二叉树有2m-1个结点。 完全二叉树是指除最后一层外,每一层上的结点数均达到最大值,在最后一层上只缺少右边的若干结点。 设一棵完全二叉树共有700个结点,则在该树中有多少个叶子结点? 设该完全二叉树中有x个度为0的结点(即叶子结 点),y个度为1的结点,z个度为2的结点,则: x+y+z=700 ① z=x-1 ② 将②代入①可得:x=(700+1-y)/2 ③ 又y只能取0或1,分别代入③可得: x=350.5④(不合理舍去)或350⑤ 所以叶子结点数x=350 性质4 具有n个结点的完全二叉树树深为[log2n]+1。或者:具有n个结点的二叉树,其深度至少为[log2n]+1。其中[log2n] 表示取[log2n]的整数部分。 性质5 设完全二叉树共有n个结点。如果从根结点开始,按层序(每一层从左到右)用自然数1,2,…n给结点进行编号(k=1,2….n),有以下结论: ①若k=1,则该结点为根结点,它没有父结点;若k1,则该结点的父结点编号为INT(k/2); ②若2k≤n,则编号为k的结点的左子结点编号为2k;否则该结点无左子结点(也无右子结点); ③若2k+1≤n,则编号为k的结点的右子结点编号为2k+1;否则该结点无右子结点。 1.5.3 二叉树的遍历 遍历二叉树是指以一定的次序访问二叉树中的每个结点,并且每个结点仅被访问一次。 二叉树的遍历: (1)前序遍历(DLR):首先访问根结点,然后遍历左子树,最后遍历右子树; (2)中序遍历(LDR):首先遍历左子树,然后访问根结点,最后遍历右子树; (3)后序遍历(LRD):首先遍历左子树,然后访问遍历右子树,最后访问根结点。 例:对下列二叉树进行不同的遍历结果分别为: 例:已知一棵二叉树的中序序列和前序序列分别为ABCDEFGHIJK 和 EBADCFHGIKJ, 画出此二叉树。 1.6 查找技术 顺序查找: (1)线性(顺序)表为无序表; (2)线性表表采用链式存储结构。 二分法查找: 只适用于顺序存储的有序表,对于长度为n的有序线性表,最坏情况只需比较log2n次。 1.7 排序技术 排序是指将
文档评论(0)