数据结构期末复习题汇总

合集下载

数据结构期末考试试题及答案

数据结构期末考试试题及答案

数据结构期末考试试题及答案一、选择题(每题2分,共20分)1. 在数据结构中,算法的时间复杂度是指()。

A. 编写代码的时间B. 代码的长度C. 执行代码所需的时间D. 执行代码所需的指令条数2. 下列关于队列的描述,错误的是()。

A. 队列是先进先出(FIFO)的线性表B. 队列允许在一端进行插入操作C. 队列的插入操作称为入队D. 队列的删除操作称为出栈3. 对于长度为n的有序数组,使用二分查找法查找一个元素的平均时间复杂度是()。

A. O(n)B. O(n^2)C. O(log n)D. O(1)4. 在图的遍历中,深度优先搜索(DFS)使用的数据结构是()。

A. 栈B. 队列C. 链表D. 数组5. 哈希表的冲突可以通过多种方式解决,以下哪种不是解决冲突的方法?()A. 开放寻址法B. 链地址法C. 线性探测法D. 排序法6. 一个完全二叉树共有700个节点,它的最大节点数是()。

A. 700B. 701C. 1400D. 14017. 快速排序算法的最坏情况发生在()。

A. 每次选择的基准都是最大值B. 数据已经有序C. 数据已经完全逆序D. 所有数据元素相等8. 在一个具有n个节点的二叉搜索树中,最坏情况下查找一个元素的时间复杂度是()。

A. O(n)B. O(log n)C. O(n^2)D. O(1)9. 堆排序算法中,将一个堆调整为最大堆或最小堆的过程称为()。

A. 堆调整B. 堆构建C. 堆分解D. 堆维护10. 以下哪个不是B树的特性?()A. 所有键值都存储在内部节点和叶子节点中B. 所有叶子节点都在同一层上C. 每个内部节点至多有m个子节点D. 每个内部节点的非叶子子节点都至少有m/2个子节点二、简答题(每题5分,共30分)1. 什么是递归?请举例说明递归算法的应用场景。

2. 请简述图的邻接矩阵和邻接表两种存储方式的优缺点。

3. 解释什么是平衡二叉树,并说明它为什么在实际应用中很重要。

数据结构期末考试题

数据结构期末考试题

数据结构期末考试题一、选择题(每题2分,共40分)1. 下列哪一种数据结构适合用于实现一个先进先出(FIFO)的队列?A. 栈B. 链表C. 数组D. 树2. 在二叉树中,如果一个节点的度为2,那么这个节点称为什么?A. 叶子节点B. 根节点C. 分支节点D. 中间节点3. 在哈希表中,为了解决散列冲突可以采用的方法有哪些?A. 开放定址法B. 链地址法C. 再散列法D. 随机探测法4. 下列关于图的描述中,错误的是?A. 图是由顶点和边组成的数据结构B. 无向图中边是有方向的C. 有向图中边是有方向的D. 图可以用邻接矩阵或邻接表表示5. 在堆排序算法中,堆是一种什么类型的数据结构?A. 栈B. 队列C. 二叉树D. 图二、填空题(每空2分,共20分)6. 在深度优先搜索算法中,使用栈来实现,先进后出的规则可以保证节点的______先于子节点进行遍历。

7. 在广度优先搜索算法中,使用队列来实现,先进先出的规则可以保证节点的______先于兄弟节点进行遍历。

8. 图中任意两个顶点之间的路径长度被称为该路径的______。

9. 当前最小生成树算法Prim和Kruskal的时间复杂度均为O(______ log ______)。

10. 在快速排序算法中,选择一个元素作为基准,将小于等于基准的放在左边,大于基准的放在右边,这个过程称为______。

三、简答题(每题10分,共30分)11. 请简单描述一下堆排序算法的原理和过程。

12. 请说明图的邻接矩阵和邻接表分别是什么,它们有何优缺点?13. 请写出快速排序算法的递归实现代码,并说明其时间复杂度是多少。

四、编程题(40分)请设计一个数据结构,实现一个简单的图类Graph,包含以下功能:1. 添加顶点addVertex(Vertex v)2. 添加边addEdge(Vertex v1, Vertex v2)3. 深度优先搜索算法dfs(Graph g, Vertex v)4. 广度优先搜索算法bfs(Graph g, Vertex v)要求根据以上功能设计实现Graph类,并编写测试代码对其进行验证。

数据结构期末考试复习题资料

数据结构期末考试复习题资料

数据结构期末考试复习题资料一.单项选择题1.算法指的是()。

A.计算方法B.排序方法C.特定问题求解步骤的描述D.调度方法2.下列数据结构中,()是非线性结构。

A.栈B.队列C.完全二叉树D.堆3.若某线性表最常用的操作是存取任一指定序号的元素和在最后进行插入和删除运算,则利用()存储方式最节省时间。

A.顺序表B.双向链表C.单循环链表D.带头结点的双循环链表4.队列的操作原则是()A.先进先出B.后进先出C.先进后出D.不分顺序5.栈和队列的共同特点是()。

A.都是先进先出B.都是先进后出C.都是只允许在端点处插入和删除D.没有共同点6.在一棵高度为k 的满二叉树中,结点总数为()。

A.2k-1 B.2k C.2k-1 D.⎣log 2 k ⎦+ 17.在下列存储形式中,哪一个不是树的存储形式?()A.双亲链表表示法B.孩子链表表示法C.孩子兄弟链表表示法D.顺序存储表示法8.n 个结点的完全有向图含有边的数目为()。

A.n*n B.n*(n+1) C.n/2 D.n*(n-1)9.n 个顶点的强连通图至少有()条边。

A.n B.n-1 C.n+1 D.n(n-1)10、高度为k 的二叉树的最大结点数为()。

A、2kB、2k-1C、2k–1D、2k-1–111、下列哪一种图的邻接矩阵是对称矩阵?()A、有向图B、无向图C、AOV 网D、AOE 网12、在下列存储形式中,哪一个不是树的存储形式?()A、双亲表示法B、孩子表示法C、孩子兄弟表示法D、顺序存储表示法13、下面哪一方法可以判断出一个有向图是否有环。

()A、深度优先遍历B、拓扑排序C、求最短路径D、广度优先遍历14.适用于折半查找的表的存储方式及元素排列要求为()。

A.链接方式存储,元素无序B.链接方式存储,元素有序C.顺序方式存储,元素无序D.顺序方式存储,元素有序15、一个算法应该是()。

A、程序B、特定问题求解步骤的描述C、要满足五个基本特性D、A 和C16、算法分析的两个主要方面是()。

数据结构期末考试题及答案

数据结构期末考试题及答案

数据结构期末考试题及答案一、选择题(每题2分,共10题)1. 数据结构是指()A. 存储和组织数据的方式B. 对数据进行计算和处理的方法C. 数据的物理表示形式D. 数据的逻辑结构答案:A. 存储和组织数据的方式2. 在数据结构中,栈是一种()A. 先进先出的数据结构B. 后进先出的数据结构C. 随机存取的数据结构D. 按键值查找的数据结构答案:B. 后进先出的数据结构3. 下列哪种数据结构不支持随机访问?()A. 队列B. 栈C. 数组D. 链表答案:D. 链表4. 在二叉树中,每个节点最多可以有几个子节点?()A. 0B. 1C. 2D. 无限多答案:C. 25. 在图的表示方法中,邻接矩阵适用于()A. 稠密图B. 稀疏图C. 有向图D. 无向图答案:A. 稠密图6. 下列排序算法中,最坏情况时间复杂度为O(nlogn)的是()A. 冒泡排序B. 插入排序C. 快速排序D. 选择排序答案:C. 快速排序7. 广度优先搜索算法用于()A. 求最短路径B. 求全排列C. 求最小生成树D. 求图的连通分量答案:A. 求最短路径8. 哈希表的查找时间复杂度为()A. O(1)B. O(n)C. O(logn)D. O(n^2)答案:A. O(1)9. AVL树是一种()A. 无序树B. 有序树C. 平衡树D. 非平衡树答案:C. 平衡树10. 以下哪个不属于基本的查找算法?()A. 二分查找B. 插值查找C. 散列查找D. 顺序查找答案:C. 散列查找二、填空题(每题4分,共4题)11. 下列不是线性表的是()答案:二叉树12. 在冒泡排序中,每一轮的比较次数是________答案:n-113. 在堆排序中,堆的建立时间复杂度为________答案:O(n)14. 从一个顶点到其余各顶点的最短路径算法是________答案:Dijkstra算法三、简答题(每题10分,共3题)15. 请简要说明栈的应用场景,并给出一个具体实例。

(完整word版)数据结构期末复习题

(完整word版)数据结构期末复习题

数据结构期末复习题、选择题1. 以下说法中不正确的是(D)。

A. 数据元素是数据的基本单位B. 数据项是不可分割的最小可标识单位C. 数据可由若干个数据元素构成D. 数据项可由若干个数据元素构成2. 计算机所处理的数据一般具备某种内在联系,这是指(B)。

A. 数据和数据之间存在某种关系B. 元素和元素之间存在某种关系C. 元素内部具有某种结构D. 数据项和数据项之间存在某种关系3. 在数据结构中,与所使用的计算机无关的是数据的(A)结构。

A. 逻辑B. 存储C. 逻辑和存储D. 物理4. 数据的逻辑结构可以分为(C)两类。

A. 动态结构和静态结构B. 紧凑结构和非紧凑结构C. 线性结构和非线性结构D. 内部结构和外部结构5. 数据的逻辑结构是指(A)关系的整体。

A. 数据元素之间逻辑B. 数据项之间逻辑C. 数据类型之间D. 存储结构之间6. 以下数据结构中(D)属非线性结构。

A. 栈B. 串C. 队列D. 平衡二叉树7. 以下属于逻辑结构的是(C)。

A. 顺序表B. 哈希表C. 有序表D. 单链表8. 以下不属于存储结构的是(A)。

A. 栈B. 线索二叉树C. 哈希表D. 双链表9. 在计算机中存储数据时,通常不仅要存储个数据元素的值,而且还要存储(C)A. 数据的处理方法B. 数据元素的类型C.数据元素之间的关系D.数据的存储方法10. 数据结构在计算机内存中的表示是指(A)。

A. 数据的存储结构B. 数据结构C. 数据的逻辑结构D. 数据元素之间的关系11. 在数据的存储结构中,一个结点通常存储一个(B)A. 数据项B. 数据元素C. 数据结构D. 数据类型12. 在决定选择何种类型的存储结构时,一般不多考虑(A)A. 各结点的值如何B. 结点个数的多少C. 对数据有哪些运算D. 所用编程语言实现这种结构是否方便13. 计算机中算法指的是解决某一问题的有限运算序列,它必须具备输入、输出、(B)。

8套题(含答案)数据结构期末复习

8套题(含答案)数据结构期末复习

习题1:绪论一、单项选择题1.数据结构是指()。

A.数据元素的组织形式B.数据类型C.数据存储结构D.数据定义2.数据在计算机存储器内表示时,物理地址与逻辑地址不相同的,称之为()。

A.存储结构B.逻辑结构C.链式存储结构D.顺序存储结构3.树形结构是数据元素之间存在一种()。

A.一对一关系B.多对多关系C.多对一关系D.一对多关系4.设语句x++的时间是单位时间,则以下语句的时间复杂度为()。

for(i=1; i<=n; i++)for(j=i; j<=n; j++)x++;A.O(1)B.O(2n)C.O(n)D.O(3n)5.算法分析的目的是(1),算法分析的两个主要方面是(2)。

(1) A.找出数据结构的合理性 B.研究算法中的输入和输出关系C.分析算法的效率以求改进D.分析算法的易懂性和文档性(2)A.空间复杂度和时间复杂度 B.正确性和简明性C.可读性和文档性D.数据复杂性和程序复杂性6.计算机算法指的是(1),它具备输入,输出和(2)等五个特性。

(1) A.计算方法 B.排序方法C.解决问题的有限运算序列D.调度方法(2) A.可行性,可移植性和可扩充性 B.可行性,确定性和有穷性C.确定性,有穷性和稳定性D.易读性,稳定性和安全性7.数据在计算机内有链式和顺序两种存储方式,在存储空间使用的灵活性上,链式存储比顺序存储要()。

A.低B.高C.相同D.不好说8.数据结构作为一门独立的课程出现是在()年。

A.1946B.1953C.1964D.19689.数据结构只是研究数据的逻辑结构和物理结构,这种观点()。

A.正确B.错误C.前半句对,后半句错D.前半句错,后半句对10.计算机内部数据处理的基本单位是()。

A.数据B.数据元素C.数据项D.数据库二、填空题1.数据结构按逻辑结构可分为两大类,分别是线性结构和非线性结构。

2.数据的逻辑结构有四种基本形态,分别是集合、线性、树和图。

数据结构期末习题集及答案

数据结构期末习题集及答案

数据结构期末习题集及答案第一章概论一、选择题1、研究数据结构就是研究( D )。

A. 数据的逻辑结构B. 数据的存储结构C. 数据的逻辑结构和存储结构D. 数据的逻辑结构、存储结构及其基本操作2、算法分析的两个主要方面是( A )。

A. 空间复杂度和时间复杂度B. 正确性和简单性C. 可读性和文档性D. 数据复杂性和程序复杂性3、具有线性结构的数据结构是( D )。

A. 图B. 树C. 广义表D. 栈4、计算机中的算法指的是解决某一个问题的有限运算序列,它必须具备输入、输出、( B )等5个特性。

A. 可执行性、可移植性和可扩充性B. 可执行性、有穷性和确定性C. 确定性、有穷性和稳定性D. 易读性、稳定性和确定性5、下面程序段的时间复杂度是( C )。

fori0;im;i++forj0;jn;j++a[i][j]i*j;A. Om2B. On2C. Om*nD. Om+n6、算法是( D )。

A. 计算机程序B. 解决问题的计算方法C. 排序算法D. 解决问题的有限运算序列7、某算法的语句执行频度为(3n+nlog2n+n2+8),其时间复杂度表示( C )。

A. OnB. Onlog2nC. On2D. Olog2n8、下面程序段的时间复杂度为( C )。

i1;whileinii*3;A. OnB. O3nC. Olog3nD. On39、数据结构是一门研究非数值计算的程序设计问题中计算机的数据元素以及它们之间的( B )和运算等的学科。

A. 结构B. 关系C. 运算D. 算法10、下面程序段的时间复杂度是( C )。

is0;whilesni++;s+i;A. OnB. On2C. Olog2nD. On311、抽象数据类型的三个组成部分分别为( A )。

A. 数据对象、数据关系和基本操作B. 数据元素、逻辑结构和存储结构C. 数据项、数据元素和数据类型D. 数据元素、数据结构和数据类型12、通常从正确性、易读性、健壮性、高效性等4个方面评价算法的质量,以下解释错误的是( A )。

数据结构期末考试试题及答案

数据结构期末考试试题及答案

数据结构期末考试试题及答案一、选择题1. 以下哪种数据结构是线性存储结构?A. 树B. 图C. 链表D. 哈希表答案:C2. 在二叉搜索树中,若删除一个节点,则需要进行以下哪些操作?A. 仅删除操作B. 删除操作和调整树结构操作C. 插入操作D. 忽略操作答案:B3. 快速排序算法的时间复杂度在最坏情况下是:A. O(log n)B. O(n)C. O(n log n)D. O(n^2)答案:D4. 下面哪个排序算法适用于大数据量的排序?A. 冒泡排序B. 快速排序C. 插入排序D. 归并排序答案:D5. 哈夫曼树是一种特殊的:A. 二叉树B. 多叉树C. 哈希表D. 图答案:A二、填空题1. 链表的基本操作包括__________、__________、__________和__________。

答案:创建、插入、删除、查找2. 栈是一种后进先出(LIFO)的数据结构,其添加元素的操作称为__________,移除元素的操作称为__________。

答案:push、pop3. 在图的遍历算法中,按照遍历方向的不同,可以分为__________和__________。

答案:深度优先遍历、广度优先遍历4. 红黑树是一种自平衡的__________。

答案:二叉搜索树4. 散列表(哈希表)的主要优点是__________。

答案:查找速度快三、简答题1. 请简述数组和链表的区别及各自的优缺点。

答案:数组是一种顺序存储结构,通过索引直接访问元素,访问速度快,但是插入和删除操作需要移动大量元素,效率较低。

链表是一种非顺序存储结构,通过指针连接元素,插入和删除操作只需要改变指针,效率较高,但是访问元素需要从头开始遍历,速度较慢。

2. 请解释二分查找法的工作原理及其适用条件。

答案:二分查找法是一种在有序数组中查找特定元素的算法。

工作原理是将数组分为两部分,判断目标值与中间元素的大小关系,然后在相应的一半中继续查找,重复此过程,直到找到目标值或范围缩小到无法再分。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

(1)若以1234作为双端队列的输入序列,则既不能由输入受限双端队列得到,也不能由输出受限双端队列得到的输出序列是( )。

A )1234B )4132C )4231D )4213(2)将一个A[1..100,1..100]的三对角矩阵,按行优先存入一维数组B[298]中,A 中元素a 66,65在B 数组中的位置k 为( )(假设B[0]的位置是1)。

A )198B )195C )197D )198(3)若度为m 的哈夫曼树中,其叶结点个数为n ,则非叶结点的个数为( )。

A )n-1B )1-⎥⎦⎥⎢⎣⎢m n C )⎥⎥⎤⎢⎢⎡--11m n D )11-⎥⎥⎤⎢⎢⎡-m n (4)若一个有向图具有拓扑排序序列,并且顶点按拓扑排序序列编号,那么它的邻接矩阵必定为( )。

A )对称矩阵B )稀疏矩阵C )三角矩阵D )一般矩阵(5)设森林 F 对应的二叉树为有 m 个结点,此二叉树根的左子树的结点个数为k ,则另一棵子树的结点个数为( )。

A )m-k+1B )k+1C )m-k-1D )m-k (6)假定有K 个关键字互为同义词,若用线性探测法把这K 个关键字存入散列表中,至少要进行( )次探测。

A )K-1次B )K 次C )K +l 次D )K(K+1)/2次(7)一棵深度为k 的平衡二叉树,其每个非终端结点的平衡因子均为0,则该树共有( )个结点。

A )2k-1-1B )2k-1C )2k-1+1D )2k -1(8)如表r 有100000个元素,前99999个元素递增有序,则采用( )方法比较次数较少。

A )直接插入排序B )快速排序C )归并排序D )选择排序 (9)如果只考虑有序树的情形,那么具有7个结点的不同形态的树共有( )棵。

A )132B )154C )429D )前面均不正确(10)对n(n>=2)个权值均不相同的字符构成哈夫曼树,关于该树的叙述中,错误的是( )。

A )该树一定是一棵完全二叉树B )树中一定没有度为1的结点C )树中两个权值最小的结点一定是兄弟结点D )树中任一非叶结点的权值一定不小于下一任一结点的权值 二、(本题8分)斐波那契数列Fn 定义如下:F 0=0,F 1=1,F n =F n-1+F n-2请就此斐波那契数列,回答下列问题:(1)在递归计算F n 的时候,需要对较小的F n-1,F n-2,…,F 1,F 0精确计算多少次? (2)若用有关大O 表示法,试给出递归计算Fn 时递归函数的时间复杂度是多少? 三、(本题8分)证明:如果一棵二叉树的后序序列是1u ,2u ,…,n u ,中序序列是1p u ,2p u ,…,np u ,则由序列1,2,…,n 可通过一个栈得到序列1p ,2p ,…,n p 。

四、(本题8分)如下图所示为5个乡镇之间的交通图,乡镇之间道路的长度如图中边上所注。

现在要在这5个乡镇中选择一个乡镇建立一个消防站,问这个消防站应建在哪个乡镇,才能使离消防站最远的乡镇到消防站的路程最短。

试回答解决上述问题应采用什么算法,并写出应用该算法解答上述问题的每一步计算结果。

五、(本题8分)证明一个深度为n的AVL树中的最少结点数为:Nn=F n+2-1 (n≥0)其中,Fi为Fibonacci数列的第i项。

六、(本题8分)简单回答有关AVL树的问题:(北方名校经典试题)(1)在有n个结点的AVL树中,为结点增加一个存放结点高度的数据成员,那么每一个结点需要增加多少个字位(bit)?(2)若每一个结点中的高度计数器有8bit,那么这样的AVL树可以有多少层?最少有多少个关键字?七、(本题8分)设有12个数据{25,40,33,47,12,66,72,87,94,22,5,58},它们存储在散列表中,利用线性探测再散列解决冲突,要求插入新数据的平均查找次数不超过3次。

(1)该散列表的大小m应设计多大?(2)试为该散列表设计相应的散列函数。

(3)顺次将各个数据散列到表中。

(4)计算查找成功的平均查找次数。

八、(本题8分)已知某电文中共出现了10种不同的字母,每个字母出现的频率分别为A:8,B:5,C:3,D:2,E:7,F:23,G:9,H:11,I:2,J:35,现在对这段电文用三进制进行编码(即码字由0,l,2组成),问电文编码总长度至少有多少位?请画出相应的图。

九、(本题9分)已知一棵度为m的树中有N1个度为1的结点,N2个度为2的结点,…,N m个度为m的结点。

试问该树中有多少个叶子结点?(北方名校经典试题)十、(本题15分)试用递归法编写输出从n个数中挑选k个进行排列所得序列的算法。

模拟试题(七)参考答案一、单项选择题(每小题2 分,共20分)(1)参考答案:C)(2)【分析】如下所示,三对角矩阵第1行和最后1行非零元素个数为2个,其余各行的非零元素个数是3个,所知a66,65前面共有2+3*64=194个非零元素,a66,65本身是第195个非零元。

⎥⎥⎥⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎡=-----------nn n n n n n n nn n n n n n n a a a a a a a a a a a a a a a a A 1,,11,1,11,22,21,23433322322211211参考答案:B )(3)【分析】在哈夫曼树的非叶结点中最多只有1个结点的度不为m ,设非叶结点的个数为k ,则其中有k-1个结点的度为m ,设另1个结点的度为u ,则2≤u ≤m ,设结点总数为n 总,则有如下关系:n 总-1=m(k-1)+u ① n 总=k+n ②将②代入①可得:k+n-1= m(k-1)+u ,解得:1)()1(--+-=m u m n k,由于2≤u ≤m ,所以可得0≤m-u<m-1,所以可得:11--m n ≤k <11--m n +1,可知⎥⎥⎤⎢⎢⎡--=11m n k 。

参考答案:C )(4)【分析】设顶点按拓扑排序序列为:v 0,v 1,…,v n-1,则对于邻接矩阵A ,只有当i<j 时,才可能有弧< v i ,v j >,也就是当i>j 时,一定没有弧< v i ,v j >,所以这时A[i][j]=0,可知邻接矩阵为三角矩阵。

参考答案:C )(5)【分析】设另一棵子树的结点个数为n ,所以有 m=n+k+1,可知n= m-k-l 。

参考答案:C )(6)【分析】因为K 个关键字互为同义词,只有在存入第一个关键字的情况下不发生冲突,所以至少需进行1+2+…+K=K(K+1)/2次探测。

参考答案:D )(7)【分析】由于每个非终端结点的平衡因子均为0,所以每个非终端结点必有左右两个孩子,且左子树的高度和右子树的高度相同,这样AVL 树是满二叉树。

高度为k 的满二叉树的结点数为2k -l 。

参考答案:D )(8)【分析】本题中只有直接插入排序利用前面有序的子序列这个性质,如用直接插入排序对本题只需将最后一个元素插入到前面99999个元素的有序子序列中即可,显然比较次数较少。

参考答案:A )(9)【分析】具有n 个结点有不同形态的树的数目和具有n-l 个结点互不相似的二叉树的数目相同(将树转化为二叉树时,根结点右子树为空,所以除根结点而外只有左子树,其不相似的二叉树的等价于不相似的左子树)。

具有n 个结点互不相似的二又树的数目为n n C n 211+,本题中应为132161612=+C 。

参考答案:A )(10)参考答案:A ) 二、(本题8分) 【解答】(1)设在计算F n 时,由F n-1+F n-2可知F n-1要精确计算1次; 由F n-1=F n-2+F n-3可知F n =2F n-2+F n-3,F n-2要精确计算2次;由F n-2=F n-3+F n-4可知F n =3F n-3+2F n-4,F n-3要精确计算3次,F n =3F n-3+2F n-4公式中F n-3的系数为F n-3要精确计算次数,而F n-4的系数为F n-2要精确计算次数,以此类推,设F n-j 的精确计算次为a j ,则有:F n =a j *F n-j +a j-1*F n-j-1。

由F n-j =F n-j-1+F n-j-2可知F n =(a j + a j-1)*F n-j-1+a j *F n-j-2 ,F n-j-1的精确计算次数为a j+1,所以有:a j+1=a j +a j-1由于F n-1要精确计算a 1为1次,即a 1=1,即可知F n-1,F n-2,…,F 1,F 0的精确计算次为:1,2,3,5,……,a j =a j-1+a j-2……与斐波那契数列数列:0,1,2,3,5,……,F n =F n-1+F n-2…… 比较可知a j =F j+1。

(2)由于F n 的计算最终要转化为F 0与F 1之和,其加法的计算次数为F 0与F 1的精确计算次数之和再减1之差,由于F 0=F n-n 与F 1=F n-(n-1),所以计算F n 时,加法计算次数为:a n +a n-1-1=F n+1+F n -1由于Fn=n n )251(51)251(51--+,可知时间复杂度为O(n)251(+)。

三、(本题8分)【解答】当n=1时,结论显然成立。

设n<=k 时结论成立,当n=k+1时,设一棵二叉树的后序序列是1u ,2u ,…,n u ,中序序列是1p u ,2p u ,…,np u ,可知n u 是二叉树的根结点,设n p j =,可知{1p u ,2p u ,…,1-j p u }是左子树的结点集合,{1+j p u ,2+j p u ,…, n p u }是右子树的结点集合,进一步可知:(1)左子树的后序序列是1u ,2u ,…,1-j u ,中序序列是1p u ,2p u ,…,1-j p u ,由归纳假设知序列1,2,…,j-1可以通过一个栈得序列1p ,2p ,…,1-j p 。

(2)右子树的后序序列是j u ,1+j u ,…, 1-n u ,中序序列是1+j p u ,2+j p u ,…, np u ,设j u u ='1,12+='j u u ,…,1--='n j nu u ;11+=''j p p u u ,22+=''j p p u u ,…,n j n p p u u ='-',则111+-='+j p p j ,122+-='+j p p j ,…,1+-='-j p p n j n,由归纳假设知序列1,2,…,n-j 可以通过一个栈得序列1p ',2p ',…,j n p -',显然按同样的方式,j,j+1,…,n-1 可以通过一个栈得序列11p j '+-,21p j '+-,…,j np j -'+-1,也就是1+j p ,2+j p ,…,n p 。

相关文档
最新文档