数据结构7 堆与树的存储

1-1

分数 2

作者 DS课程组单位 浙江大学

对于一个有N个结点、K条边的森林,不能确定它共有几棵树。

T

F


1-2

分数 1

作者 DS课程组单位 临沂大学

树的后根序遍历序列等同于它所对应二叉树的中序遍历序列。

T

F


1-3

分数 1

作者 王东单位 贵州师范学院

高度为h(h>0)的完全二叉树对应的森林所含的树的个数一定是h。

T

F


1-4

分数 0

作者 YJ单位 西南石油大学

给定一棵树,可以找到唯一的一棵二叉树与之对应。

T

F


1-5

分数 2

作者 DS课程组单位 浙江大学

任何最小堆中从根结点到任一叶结点路径上的所有结点是有序的(从小到大)。

T

F


1-6

分数 2

作者 冯雁单位 浙江大学

在有N个元素的最大堆中,随机访问任意键值的操作可以在O(logN)时间完成。

T

F


1-7

分数 2

作者 周强单位 青岛大学

最大堆(大顶堆、max-heap)的前序遍历结果是从大到小排列的。

T

F


1-8

分数 2

作者 陈越单位 浙江大学

For binary heaps with N elements, the BuildHeap function (which adjust an array of elements into a heap in linear time) does at most Nlog(N+1) comparisons between elements.

对于具有N个元素的二进制堆,BuildHeap函数(它在线性时间内将元素数组调整为一个堆)在元素之间最多进行N−log(N+1)比较。

T

F


2-1

分数 3

作者 DS课程组单位 浙江大学

将森林转换为对应的二叉树,若在二叉树中,结点u是结点v的父结点的父结点,则在原来的森林中,u和v可能具有的关系是:

  1. 父子关系; 2. 兄弟关系; 3. u的父结点与v的父结点是兄弟关系

A.只有2

B.1和2

C.1和3

D.1、2和3


2-2

分数 2

作者 DS课程组单位 浙江大学

对于一个有N个结点、K条边的森林,共有几棵树?

A.NK

B.NK+1

C.NK−1

D.不能确定


2-3

分数 2

作者 DS课程组单位 浙江大学

设森林F中有三棵树,第一、第二、第三棵树的结点个数分别为M1,M2和M3。则与森林F对应的二叉树根结点的右子树上的结点个数是:

A.M1

B.M1+M2

C.M2+M3

D.M3


2-4

分数 2

作者 考研真题单位 浙江大学

已知森林 F 及与之对应的二叉树 T,若 F 的先根遍历序列是 a, b, c, d, e, f,后根遍历序列是 b, a, d, f, e, c,则 T 的后序遍历序列是:

A.b, a, d, f, e, c

B.b, d, f, e, c, a

C.b, f, e, d, c, a

D.f, e, d, c, b, a


2-5

分数 1

作者 DS课程组单位 浙江大学

堆的形状是一棵:

A.二叉搜索树

B.满二叉树

C.非二叉树

D.完全二叉树


2-6

分数 2

作者 DS课程组单位 浙江大学

将10、12、1、14、6、5、8、15、3、9、7逐个按顺序插入到初始为空的最小堆(小根堆)中,然后连续执行两次删除最小元素操作(DeleteMin),此后堆顶的元素是什么?

A.5

B.6

C.7

D.9


2-7

分数 2

作者 DS课程组单位 浙江大学

对最小堆(小顶堆){1,3,2,6,7,5,4,15,14,12,9,10,11,13,8} 进行三次删除最小元的操作后,结果序列为:

A.4,5,6,7,8,9,10,11,12,13,14,15

B.4,6,5,13,7,10,8,15,14,12,9,11

C.4,6,5,12,7,10,8,15,14,9,13,11

D.4,5,6,12,7,10,8,15,14,13,9,11


2-8

分数 3

作者 DS课程组单位 浙江大学

d叉树堆存储在数组中。则对任意下标为i的单元,其父结点、第一个孩子结点、最后一个孩子结点的下标为:

A.⌈(i+d−2)/d⌉、(i−2)d+2、(i−1)d+1

B.⌈(i+d−1)/d⌉、(i−2)d+1、(i−1)d

C.⌊(i+d−2)/d⌋、(i−1)d+2、id+1

D.⌊(i+d−1)/d⌋、(i−1)d+1、id


2-9

分数 3

作者 DS课程组单位 浙江大学

设最小堆(小根堆)的层序遍历结果为{5, 18, 15, 28, 22, 42, 40}。用线性时间复杂度的算法将该堆调整为最大堆(大根堆),则该树的中序遍历结果为:

A.18, 28, 22, 15, 40, 5, 42

B.18, 28, 22, 42, 15, 40, 5

C.5, 22, 18, 42, 15, 40, 28

D.22, 5, 18, 42, 40, 15, 28


2-10

分数 3

作者 DS课程组单位 浙江大学

设最小堆(小根堆)的层序遍历结果为{1, 3, 2, 5, 4, 7, 6}。用线性时间复杂度的算法将该堆调整为最大堆(大根堆),则该树的中序遍历结果为:

A.3, 5, 4, 2, 6, 1, 7

B.1, 4, 3, 7, 2, 6, 5

C.3, 5, 4, 7, 2, 6, 1

D.4, 1, 3, 7, 6, 2, 5


2-11

分数 3

作者 冯雁单位 浙江大学

在有n(>1)个元素的最大堆(大根堆)中,最小元的数组下标可以是:

A.1

B.⌊n/2⌋−1

C.⌊n/2⌋+2

D.⌊n/2⌋

最小元下标一定大于⌊n/2⌋。


2-12

分数 2

作者 严冰单位 浙大城市学院

以下各组序列不属于堆的是()。

A.(100,85,98,77,80,60,82,40,20,10,66)

B.(10,20,40,60,66,77,80,82,85,98,100)

C.(100,85,40,77,80,60,66,98,82,10,20)

D.(100,98,85,82,80,77,66,60,40,20,10)


2-13

分数 2

作者 DS课程组单位 浙江大学

将6、4、3、5、8、9顺序插入初始为空的最大堆(大根堆)中,那么插入完成后堆顶的元素为:

A.3

B.5

C.6

D.9


2-14

分数 3

作者 何钦铭单位 浙江大学

在一个有2333个元素的最小堆中,下列哪个下标不可能是最大元的位置?

A.1116

B.1167

C.2047

D.2232


2-15

分数 3

作者 陈越单位 浙江大学

设最大堆(大根堆)的层序遍历结果为 {98, 72, 86, 60, 65, 12, 23, 50}。用线性时间复杂度的算法将该堆调整为最小堆(小根堆),然后连续执行两次删除最小元素操作(DeleteMin)。则该树的中序遍历结果为:

A.50, 60, 98, 65, 72, 86

B.98, 60, 65, 50, 86, 72

C.98, 60, 50, 65, 86, 72

D.72, 60, 65, 50, 98, 86


2-16

分数 2

作者 魏宝刚单位 浙江大学

利用过滤法将关键字序列 { 37, 66, 48, 29, 31, 75 } 建成的最大堆为 __

A.75, 66, 48, 37, 31, 29

B.75, 37, 66, 29, 31, 48

C.75, 66, 48, 29, 31, 37

D.75, 48, 66, 37, 29, 31


2-17

分数 2

作者 考研真题单位 浙江大学

下列关于大根堆(至少含 2 个元素)的叙述中,正确的是:

  • (I). 可以将堆看成一棵完全二叉树

  • (II). 可以采用顺序存储方式保存堆

  • (III). 可以将堆看成一棵二叉排序树

  • (IV). 堆中的次大值一定在根的下一层

A.仅 I、II

B.仅 II、III

C.仅 I、II、IV

D.仅 I、III、IV

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 是一种特殊的形结构,它是一种用来维护一组可以动态改变的元素的数据结构。 栈是一种顺序存储线性数据结构,其核心是元素的先进后出(First In Last Out,FILO)的原则进行操作的。 因此,和栈的最大区别在于其存储结构不同:形结构,而栈是线性结构。 ### 回答2: 与栈是数据结构中常用的两种存储方式,它们在内存中的作用和特点有所不同。 首先,和栈的数据存储方式不同。栈是一种线性存储结构,数据按照"先进后出"的顺序进行存取。栈的特点是只能在栈顶进行插入和删除操作,即只能对栈顶元素进行访问。而则是一种二叉结构,数据存储无序。中的节点按照一定的规则进行排序或者化操作。 其次,和栈在内存使用上也有差异。栈的分配和回收都由编译器自动完成,速度较快,但容量有限。的分配和回收由程序控制,容量较大。在动态分配内存,使用可以分配较大的空间,但需要手动释放,否则容易产生内存泄漏。 再者,和栈在局部性和访问速度上有不同的特点。栈上的数据具有很好的局部性,数据访问速度较快。而上的数据分布不连续,每次访问需要通过指针进行寻址,速度较慢。 此外,和栈在数据的生命周期上也有差异。栈上的数据生命周期由其作用域决定,当离开作用域,该数据自动释放。而上的数据生命周期由程序控制,可以在需要的候手动释放。 总的来说,和栈都是数据结构中常用的存储方式,栈适合用于处理局部性较好、大小固定的数据,而适合用于动态分配较大、生命周期不确定的数据。 ### 回答3: 在数据结构中,(Heap)和栈(Stack)是两种常用的存储结构。和栈的区别主要体现在以下几个方面: 1. 数据结构通常是一种形结构,可以用完全二叉来实现;而栈是一种线性结构,采用先进后出(Last In First Out,LIFO)的原则。 2. 存储方式:是动态分配的对象,存储内存中。它的空间不连续,通过指针进行管理。栈则是一种固定大小的内存块,存储在栈内存中。栈的内存空间是连续的,系统自动分配和释放。 3. 空间分配:内存的分配由程序员控制,需要手动申请和释放内存空间,一般用于存储动态大小的数据。栈内存的分配由编译器自动完成,当进入一个函数,会自动为函数的局部变量分配空间,并在函数结束自动释放。 4. 空间大小:的大小通常比栈大得多,的空间由操作系统决定,一般是几十兆甚至几个G;而栈的大小通常比较有限,一般在几千字节到几百兆字节之间。 5. 内存管理:内存的管理需要程序员手动管理,需要注意申请和释放的成对操作,避免内存泄漏和野指针;栈内存的管理由编译器自动完成,避免了手动管理内存的麻烦。 6. 数据访问速度:的数据访问速度较慢,因为需要通过指针来访问,而指针需要额外的寻址操作;栈的数据访问速度较快,因为数据存储在连续的内存空间中,直接访问即可。 综上所述,和栈在数据结构中具有不同的特点和应用场景。主要用于存储动态分配的数据,而栈主要用于存储函数调用、局部变量等。深入理解和栈的区别对于合理使用和优化程序内存有着重要的意义。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值