数据结构期中模拟

这篇具有很好参考价值的文章主要介绍了数据结构期中模拟。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、填空题

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)

数据结构期中模拟,数据结构,数据结构,c语言,算法,开发语言,1024程序员节

中序遍历 :BA

前序遍历:AB

二、选择题 

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

A.双链表

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

C.单循环链表

D.顺序表

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

数据结构期中模拟,数据结构,数据结构,c语言,算法,开发语言,1024程序员节

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

数据结构期中模拟,数据结构,数据结构,c语言,算法,开发语言,1024程序员节

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 的结点(肯能会存在)

数据结构期中模拟,数据结构,数据结构,c语言,算法,开发语言,1024程序员节

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

A.BDACEFG

B.DCBFGEA

C.GFEDCBA

D.ABCDEFG

数据结构期中模拟,数据结构,数据结构,c语言,算法,开发语言,1024程序员节

后序遍历:左 右 根

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

数据结构期中模拟,数据结构,数据结构,c语言,算法,开发语言,1024程序员节

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

数据结构期中模拟,数据结构,数据结构,c语言,算法,开发语言,1024程序员节

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

A.只有唯一的前趋元素

B.有多个后继元素

C.只有唯一的后继元素

D.有多个前趋元素

数据结构期中模拟,数据结构,数据结构,c语言,算法,开发语言,1024程序员节

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

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

B.p->next=p

C.p=p->next->next

D.p=p->next

数据结构期中模拟,数据结构,数据结构,c语言,算法,开发语言,1024程序员节

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;

数据结构期中模拟,数据结构,数据结构,c语言,算法,开发语言,1024程序员节

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)

数据结构期中模拟,数据结构,数据结构,c语言,算法,开发语言,1024程序员节

A.d

B.g

C.c

D. f

数据结构期中模拟,数据结构,数据结构,c语言,算法,开发语言,1024程序员节

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.线性结构和非线性结构

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

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

非线性结构(树、图)

数据的存储结构分为顺序存储和非顺序存储文章来源地址https://www.toymoban.com/news/detail-788121.html

到了这里,关于数据结构期中模拟的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 数据结构和算法——用C语言实现所有图状结构及相关算法

    本文所有代码均在仓库中,这是一个完整的由纯C语言实现的可以存储任意类型元素的数据结构的工程项目。 首先是极好的工程意识,该项目是一个中大型的CMake项目,结构目录清晰,通过这个项目可以遇见许多工程问题并且可以培养自己的工程意识。 其次是优秀的封装性(

    2024年02月06日
    浏览(236)
  • C语言 数据结构--栈 括号匹配算法

    今天这一期使用栈来完成括号匹配算法 ① 栈结构 ② 初始化栈 ③ 入栈 ④ 出栈 ⑤ 判断栈是否为空 ⑤ 括号匹配 完整代码: 结果: (1)括号序列为char str[]={\\\'(\\\',\\\'{\\\',\\\'[\\\',\\\']\\\',\\\'}\\\',\\\')\\\'}; (2)括号序列为char str1[]={\\\'{\\\',\\\'(\\\',\\\'}\\\',\\\']\\\'};    

    2024年02月05日
    浏览(54)
  • C语言 数据结构与算法 I

    因为之前写算法都是用C++,也有了些C++基础,变量常量数据类型就跳过去吧。 首先是环境,学C++时候用Clion,C语言也用它写吧~ 新建项目,选C执行文件,语言标准。。。就先默认C99吧,反正是测试环境,应该问题不大 直接运行一手 嗯。。JB家的新UI。。真是。。。。。。。一

    2024年02月09日
    浏览(42)
  • 数据结构与算法——排序(C语言实现)

    ✅✅✅✅✅✅✅✅✅✅✅✅✅✅✅✅ ✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨ 🌿🌿🌿🌿🌿🌿🌿🌿🌿🌿🌿🌿🌿🌿🌿🌿 🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟 🌟🌟 追风赶月莫停留 🌟🌟 🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀 🌟🌟 平芜尽处是春山

    2024年04月09日
    浏览(59)
  • 【C/C++数据结构与算法】C语言数据存储

    目录 一、大小端存储 二、整型提升和截断 三、数据的二进制存储 四、结构体内存对齐 大端存储 :数据的低位字节存储在高地址 小端存储 :数据的低位字节存储在低地址 不同编译器有不同的存储方式 提升 :短字节数据类型 --- 长字节数据类型 截断 :长字节数据类型 --

    2024年02月09日
    浏览(42)
  • 【学习笔记】数据结构算法文档(类C语言)

    1.1.1 线性表的顺序存储表示 1.1.2 顺序表中基本操作的实现 1.1.2.1 初始化 1.1.2.2 取值 1.1.2.3 查找 1.1.2.4 插入 1.1.2.5 删除 1.1.2.6 计数 1.2.1 单链表的定义和表示 ★ 关于结点 1.2.2 单链表基本操作的实现 1.2.2.1 初始化 1.2.2.2 取值 1.2.2.3 查找 1.2.2.4 插入 1.2.2.5 删除 1.2.2.6 前插法创建单

    2024年02月07日
    浏览(44)
  • (C语言)数据结构算法-病毒感染检测(BF算法&&KMP算法)

    病毒感染检测: 医学研究者最近发现了某些新病毒,得知它们的DNA序列都是环状的。为了快速检测出患者是否感染了相应的病毒,研究者将患者的DNA和病毒的DNA均表示成一些字母组成的字符串序列,然后检测某种病毒DNA序列是否在患者的DNA序列中出现过,如果出现过,则此人

    2024年02月08日
    浏览(49)
  • 『初阶数据结构 • C语言』② - 算法为何重要

    本文内容借鉴一本我非常喜欢的书——《数据结构与算法图解》。学习之余,我决定把这本书精彩的部分摘录出来与大家分享。   算法这个词听起来很深奥,其实不然。它只是解决某个问题的一套流程。  准备一碗麦片的流程也可以说是一种算法,它包含以下 4步(对我来说

    2024年02月14日
    浏览(39)
  • 内部排序算法比较-数据结构C语言课设

    名称: 内部排序算法比较 内容: 在教科书中,各种内部排序算法的时间复杂的分析结果只给出了算法执行时间的阶,或大概执行时间。试通过随机数据比较各种算法的比较次数和移动次数,以取得直观感受。 任务: (1)对以下7中常会用的内部排序算法进行比较

    2024年02月12日
    浏览(55)
  • [数据结构-C语言] 算法的时间复杂度

    目录 1.算法的复杂度 2.时间复杂度 2.1 时间复杂度的概念 2.2 大O的渐进表示法 3、常见时间复杂度计算举例 3.1 冒泡排序 3.2 二分查找 3.3 阶乘递归 3.4 斐波那契数列 1.算法的复杂度 算法在编写成可执行程序后,运行时需要耗费时间资源和空间(内存)资源 。因此 衡量一个算法的

    2024年02月02日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包