数据结构期中模拟

一、填空题

1.二叉树就是度为 2 的树。(F)

二叉树的度<=2

2.线性表采用链式存储表示时,所有结点之间的存储单元地址可以连续也可以不连续。(T)

在顺序表中,逻辑上相邻的元素,其物理位置一定相邻。在单链表中,逻辑上相邻的元素,其物理位置不一定相邻。

3. 队列适合解决处理顺序与输入顺序相反的问题。(F)

队列适合解决处理顺序与输入顺序相同的问题。

栈适合解决处理顺序与输入顺序相反的问题。

4. 完全二叉树中,若一个结点没有左孩子,则它必是树叶。(T)

完全二叉树中,若一个结点没有左孩子,则它必定没有右孩子(先左再右),所以是树叶

5. n个元素进队的顺序和出队的顺序总是一致的。(T)

队列:先进先出,所以进队和出队的顺序是一致的

6. 某二叉树的前序和中序遍历序列正好一样,则该二叉树中的任何结点一定都无左孩子。(T)

前序遍历:根 左 右

中序遍历:左 根 右

若没有左孩子,都是根 右

7.2^N和N^N具有相同的增长速度。(F)

8.若某线性表最常用的操作是存取任一指定序号的元素和在最后进行插入和删除运算,则利用顺序表存储最节省时间。(T)

在最后进行插入和删除元素:顺序表

9. 一棵有124个结点的完全二叉树,其叶结点个数是确定的。(T)

完全二叉树:1.叶子结点只可能出现在最后两层

                      2.度为1的结点个数为0或1

124=1+2+4+8+16+32+61;有左孩子

10. 解决问题的效率,跟数据的组织方式无关。(F)

解决问题的效率,跟数据的组织方式有关,跟空间的利用率有关,跟算法的巧妙程度有关。

11. 若一个结点是某二叉树的中序遍历序列的最后一个结点,则它必是该树的前序遍历序列中的最后一个结点。(F)

中序遍历 :BA

前序遍历:AB

二、选择题 

1.若某线性表最常用的操作是存取任一指定序号的元素和在最后进行插入和删除运算,则利用哪种存储方式最节省时间?(D)

A.双链表

B.带头结点的双循环链表

C.单循环链表

D.顺序表

2.下面程序段的时间复杂度是(A)。

A.O(1)

B.O(N2)

C.O(log2​N)

D.O(N)

3.已知权值集合为{5,7,2,3,6,1,4},计算带权路径长度WPL(B)。

A.73

B.74

C.75

D.76

4. 在高度为h的完全二叉树中(B)。

A.度为0的结点都在第h层上(也可能在h-1层上)

B.第i (1≤i<h) 层上有2^(i-1)个结点

C.第i (1≤i<h) 层上结点的度都为2(可能有度为0或者度为1的点)

D.不存在度为1 的结点(肯能会存在)

 5.已知二叉树的前序遍历序列为 ABDCEFG,中序遍历序列为 DBCAFEG,则后序遍历序列为 (B)

A.BDACEFG

B.DCBFGEA

C.GFEDCBA

D.ABCDEFG

后序遍历:左 右 根

DCB FGE A 

6. 采用链结构存储线性表时,其地址(A )

A.连续不连续都可以

B.部分地址必须是连续

C.必须是不连续的

D.必须是连续的

7.算法分析的目的是(D )。

A.分析算法的可读性和简明性

B.找出数据结构的合理性

C.研究算法中的输入和输出的关系

D.分析算法的效率以求改进

算法分析的目的是分析算法的效率以求改进

8. 在下述结论中,正确的是:(C)

①只有一个结点的二叉树的度为0;

②二叉树的度为2;(二叉树的度可以小于等于2)

③二叉树的左右子树可任意交换;(不可以)

④深度为K的完全二叉树的结点个数小于或等于深度相同的满二叉树。

A.②④

B.①②③

C.①④

D.②③④

9.一棵树可转换成为与其对应的二叉树,则下面叙述正确的是(C)。

A树的先根遍历序列与其对应的二叉树的中序遍历相同

B.树的后根遍历序列与其对应的二叉树的后序遍历相同

C.树的先根遍历序列与其对应的二叉树的先序遍历相同

D.以上都不对

树的先根遍历等价于二叉树的先序遍历

树的后跟遍历等价于二叉树的中序遍历

10. 采用顺序表存储结构存储的线性表,其首地址为100,每个元素的长度为2,则第5个元素的地址为。(C)

A.100

B.120

C.108

D.110

设首地址为X,每个元素的长度为b则第n个元素的地址为:

x+b*(n-1)=100+2*4=108

11. 数据元素在计算机存储器内表示时,物理相对位置和逻辑相对位置相同并且是连续的,称之为( B)。

A.逻辑结构

B.顺序存储结构

C.链式存储结构

D.以上都不对

12.用数组表示线性表的优点是(B)。

A.不需要占用一片相邻的存储空间

B.便于随机存取

C.便于插入和删除操作

D.可以动态地分配存储空间

顺序表优点:随机存取、存储密度大

链表优点:个数自由可充、不必移动元素,修改效率高。

13. 以下有关二叉树的说法正确的是(C)。

A.任一结点的度均为2

B.二叉树的度为2

C.一棵二叉树的度可以小于2

D.至少有一个结点的度为2

二叉树的度可以小于等于2

14.依次在初始为空的队列中插入元素a,b,c,d以后,紧接着做了两次删除操作,此时的队头元素是(B )。

A.d

B.c

C.a

D.b

队列:先进先出:

1.abcd

2.cd(删过之后)

15. 由分别带权为9、2、5、7的四个叶子结点构成一棵哈夫曼树,该树的带权路径长度为:(D)

A.37

B.23

C.46

D.44

16. 若某表最常用的操作是在最后一个结点之后插入一个结点或删除最后一个结点。则采用哪种存储方式最节省运算时间?(A)

A.带头结点的双循环链表

B.单循环链表

C.双链表

D.单链表

带头结点的双向循环链表,头结点的前驱即可找到最后一个结点,可以快速插入,再向前可以找到最后一二个结点快速删除

单链表找到链表尾部需要扫描整个链表

双链表找到链表尾部也需要扫描整个链表

单循环链表只有单向指针,找到链表尾部也需要扫描整个链表

17. 对于任意一棵高度为 5 且有 10 个结点的二叉树,若采用顺序存储结构保存,每个结点占 1 个存储单元(仅存放结点的数据信息),则存放该二叉树需要的存储单元的数量至少是:(A)

A.31

B.16

C.15

D.10

高度为5:1+2+4+8+16=31;

18. 为解决计算机主机与打印机之间速度不匹配问题,通常设置一个打印数据缓冲区,主机将要输出的数据依次写入该缓冲区,而打印机则依次从该缓冲区中取出数据。该缓冲区的逻辑结构应该是?(A)

A.队列

B.堆栈

C.图

D.树

19.线性表在 ▁▁▁▁▁ 情况下适合采用链式存储结构。(B)

A.线性表的数据元素包含大量的数据项

B.线性表需经常插入或删除数据元素

C.线性表包含大量的数据元素

D.线性表中数据元素的值需经常修改

 线性表需要经常插入或删除数据元素的情况下适合采用链式存储结构

20. 以下关于链式存储结构的叙述中,(D)是不正确的。

A.结点除自身信息外还包括指针域,因此存储密度小于顺序存储结构(链式结构存储密度小)

B.逻辑上相邻的结点物理上不必邻接(对)

C.插入、删除运算操作方便,不必移动结点(对)

D.可以通过计算直接确定第i个结点的存储地址(顺序存储结构中)

链式存储结构如果要计算第I个结点的存储地址,不能直接从首结点直接计算,而必须通过指针域来顺序查找,最后再定位。

顺序存储结构可以按照计算确定i个结点的存储位置,链式存储结构必须遍历所有节点才能确定地址。

21. 按照二叉树的定义,具有3个结点的二叉树有几种?(A)

A.5

B.6

C.4

D.3

22.在线性表中,除开始元素外,每个元素( A)。

A.只有唯一的前趋元素

B.有多个后继元素

C.只有唯一的后继元素

D.有多个前趋元素

23.在单链表中,指针p指向元素为x的结点,实现“删除x的后继”的语句是(A)。

A.p->next=p->next->next

B.p->next=p

C.p=p->next->next

D.p=p->next

24.在双向循环链表结点p之后插入s的语句是:(C)

A.p->next=s; s->prior=p; p->next->prior=s ; s->next=p->next;

B.s->prior=p; s->next=p->next; p->next=s; p->next->prior=s;

C.s->prior=p; s->next=p->next; p->next->prior=s; p->next=s;

D.p->next->prior=s; p->next=s; s->prior=p; s->next=p->next;

25.一棵有 1001 个结点的完全二叉树,其叶子结点数为 ▁▁▁▁▁ 。(C)

A.254

B.500

C.501

D.250

度为0的结点数为x,度为2的结点数为x-1;

x+x-1=1001    2x=1002 x=501

26. 下列函数中,哪个函数具有最慢的增长速度:(A)

A.N(log(N^2))

B.N(logN)^2

C.N^2(logN)

D.N^1.5

27.线性表、堆栈、队列的主要区别是什么?(C)

A.堆栈和队列都不是线性结构,而线性表是

B.线性表用指针,堆栈和队列用数组

C.堆栈和队列都是插入、删除受到约束的线性表

D.线性表和队列都可以用循环链表实现,但堆栈不能

28.若一棵二叉树有126个结点,在第7层(根结点在第1层)至多有( D)个结点。

A.不存在第7层

B.32

C.64

D.63

1+2+4+8+16+32+63=126

29. 已知一棵二叉树的树形如下图所示,其后序序列为{ eacbdgf }。树中与结点a同层的结点是:(A)

A.d

B.g

C.c

D. f

30. 有六个元素以6、5、4、3、2、1的顺序进栈,问哪个不是合法的出栈序列?(B)

A.5 4 3 6 1 2

B.3 4 6 5 2 1

C.2 3 4 1 5 6

D.4 5 3 1 2 6

栈:先进后出

6比5先进,所以5,比6 后出,出的顺序应该是5 6而不是6 5

31. 在数据结构中,从逻辑上可以把数据结构分为(D )。

A.动态结构和静态结构

B.内部结构和外部结构

C.紧凑结构和非紧凑结构

D.线性结构和非线性结构

数据的逻辑结构可以分为线性结构和非线性结构

线性结构(线性表、栈、队列、字符串、数组、广义表)

非线性结构(树、图)

数据的存储结构分为顺序存储和非顺序存储

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/329299.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

DQL命令查询数据(一)

本课目标 理解查询的相关概念 掌握MySQL的简单查询语句 掌握MySQL中的函数 DQL 语言 DQL&#xff08;Data Query Language 数据查询语言&#xff09;&#xff1a;用于查询数据库对象中所包含的数据 DQL语言主要的语句&#xff1a;SELECT语句 DQL语言是数据库语言中最核心…

Transformer - Attention is all you need 论文阅读

虽然是跑路来NLP&#xff0c;但是还是立flag说要做个project&#xff0c;结果kaggle上的入门project给的例子用的是BERT&#xff0c;还提到这一方法属于transformer&#xff0c;所以大概率读完这一篇之后&#xff0c;会再看BERT的论文这个样子。 在李宏毅的NLP课程中多次提到了…

玩转贝启科技BQ3588C开源鸿蒙系统开发板 —— 编译构建及此过程中的踩坑填坑(5)

接前一篇文章&#xff1a;玩转贝启科技BQ3588C开源鸿蒙系统开发板 —— 编译构建及此过程中的踩坑填坑&#xff08;4&#xff09; 上一回重走OpenHarmony的编译构建流程&#xff0c;完成了第2步——获取标准系统源码。本回继续往下进行。 这一步和之前并无不同&#xff0c;参考…

树低级(C语言版)

一.树基本计算规则 关于树的大部分知识点我们都讲过了&#xff0c;那么如果我给你树的节点&#xff0c;你可以算出叶子节点个数吗&#xff1f; 下面我们总结下一些计算规则&#xff1a; 1.父子计算规则&#xff1a; parent(child-1)/2; leftchildparent*21,rightchildpare…

听GPT 讲Rust源代码--compiler(32)

File: rust/compiler/rustc_middle/src/middle/exported_symbols.rs 在Rust的源代码中&#xff0c;rust/compiler/rustc_middle/src/middle/exported_symbols.rs文件的作用是实现编译器中处理导出符号的功能。 该文件中定义了一些结构体和枚举&#xff0c;用于描述导出符号的信…

[Android]RadioButton控件

RadioButton控件 RadioButton控件是单选按钮控件&#xff0c;它继承自Button控件&#xff0c;可以直接使用Button控件支持的各种属性和方法。 与普通按钮不同的是&#xff0c;RadioButton控件多了一个可以选中的功能&#xff0c;能额外指定一个android&#xff1a;checked属性…

python中的异常处理

目录 一&#xff1a;处理机制 二&#xff1a;实例 一&#xff1a;处理机制 Python中的异常处理主要通过try/except语句实现。try语句块包含可能会引发异常的代码&#xff0c;而except语句块包含在try块中发生异常时要执行的代码。此外&#xff0c;Python还提供了一个finally语…

维也纳整流电路笔记

不加前馈控制的波形&#xff1a; 加入前馈控制波形&#xff1a; 驱动波形中出现超宽脉冲波形&#xff1a; 仔细分析发现是原始驱动波形产生的。 移相180度后的波形&#xff0c;仍然存在此问题&#xff1a;

次梯度算法介绍

系列文章目录 最优化笔记&#xff0c;主要参考资料为《最优化&#xff1a;建模、算法与理论》 文章目录 系列文章目录一、次梯度1 定义2 存在性 二、次梯度的计算1 按定义计算2 常用计算规则 三、最优性条件1 无约束优化问题2 约束优化问题 四、次梯度算法1 迭代格式2 收敛性 参…

大数据技术架构

1 技术架构矩阵 大数据技术栈虽然比较多,但可以抽象为输入(数据接入)--处理(数据处理、数据分析)--输出(数据应用)。工作角色分工,数据处理以数据仓库开发人员为主,数据分析以数据分析师为主,其他所有组件、系统、技术相关归为数据平台。 2 数据源 大数据的数据来源…

线性规划基本原理与案例分析

线性规划(Linear Programming 简记LP)则是数学规划的一个重要分支。 什么叫做线性规划&#xff1f;一般来讲&#xff0c;目标函数和约束函数均是线性的叫做线性规划问题。线性规划必须满足以下三种基本性质 例1.1 某机床厂生产甲、乙两种机床&#xff0c;每台销售后的利润分别…

关键字:package关键字

在 Java 中&#xff0c;package关键字用于组织和管理类文件。它将类文件分组到不同的包中&#xff0c;以提供更好的代码组织和可读性。 以下是package关键字的用法&#xff1a; 1.package语句&#xff1a;在 Java 源代码的开头使用package关键字来声明当前类所属的包。例如&a…