数据结构复习题

news2025/7/20 9:30:10

数据结构课程复习纲要

核心知识点

  1. 从数据结构的逻辑结构、存储结构和数据的运算三个方面去掌握线性表、栈、队列、串、数据、广义表、数和图等常用的数据结构。
  2. 掌握在各种常用的数据结构上实现的排序和查找运算。
  3. 对算法的时间和空间复杂度有一定的分析能力。
  4. 针对简单的应用问题,能选择合适的数据结构与设计有效的算法解决问题。

一、单选题

1.二叉树的第k层的结点最多为( D)

A、2k-1 B、2k+1 C、2k-1 D、2k-1

2.以下数据结构中哪一个是非线性结构(D )

A.队列B、栈

C、线性表D、二叉树

3.在数据结构中,从逻辑上可以把数据结构分成( C)

A. 动态结构和静态结构

B. 紧凑结构和非紧凑结构

C. 线性结构和非线性结构

D. 内部结构和外部结构

4.栈和队列的共同特点是( A)

  1. 只允许在端点处插入和删除元素

B、都是先进后出

C、都是先进先出

D、没有共同点

5.如果二叉树T2是由一棵树T1转换而来的二叉树,那么T1结点的先根遍历序列对应T2的(A ) 序列。

A.先序遍历

B.中序遍历

C.层次遍历

D.后序遍历

6.给定一棵树的二叉链表存储结构,把这棵树转换为二叉树后,这棵二叉树的形态是(A )。

A.唯一的

B.有多种,但根结点都没有右孩子

C.有多种,但根结点都没有左孩子

D.有多种

7.与单链表相比,双链表(C )

  1. 可随机访问表中结点
  2. 访问前后结点更为便捷
  3. 执行插入、删除操作更为简单
  4. 存储效率更高

8.循环队列存储在长度为m+1数组中,则入队时的操作为( D)

A、rear=rear+1 B、rear=(rear+1)%(m-1)

C、rear=(rear+1)%m D、rear=(rear+1)%(m+1)

9.对于顺序存储的线性表,访问元素和插入元素的时间复杂度分别为(C )

A、O(n) O(n) B、O(n) O(1)

C、O(1) O(n) D、O(1) O(1)

10.基于中序线索化链表,其头结点指针为head,对应的二叉树为空的判断条件是(C )。

A.head->ltag==0

B.head==NULL

C.head->lchildhead && head->rchildhead

D.head->rtag==1

11.讨论树、森林和二叉树的关系,目的是(D )。

A.只是为了方便定义树、森林的遍历方法

B.将树、森林转化成二叉树,统一逻辑表示形式

C.体现一种技巧,没有什么实际意义

D.将树、森林按二叉树的存储结构进行存储,并利用二叉树的算法解决树与森林的有关问题

12.适用于折半查找的表的存储方式及元素排列要求为(D )

A、链接方式存储,元素无序 B、链接方式存储,元素有序 C、顺序方式存储,元素无序D、顺序方式存储,元素有序

13.若一棵二叉树具有10个度为2的结点,5个度为1的结点,则度为0的结点个数为(B )

A、9 B、11 C、15 D、不确定

14.用13个权值构造哈夫曼树,则该哈夫曼树共有( D) 个结点。

A.26 B.13 C.12 D.25

15.对n(n≧2)个权值不同的字符依哈夫曼算法构造哈夫曼树,下面关于该哈夫曼树的叙述中错误的是( B) 。

A.树中一定没有度为1的结点

B.该树一定是一棵完全二叉树

C.树中两个权值最小的结点一定是兄弟结点

D.树中任何一个非叶结点的权值一定不小于下一层任意一个结点的权值

16.具有10个叶子结点的二叉树中有(B )个度为2的结点

A、8 B、9 C、10 D、11

17.一组记录的关键码为(46,79,56,38,40,84),则利用快速排序的方法,以第一个记录为基准得到的一次划分结果为(A )

A、(40,38,46,56,79,84)

B、(40,38,46,79,56,84)

C、(38,40,46,56,79,84)

D、(40,38,46,84,56,79)

18.将下图所示的二叉树按中序线索化,结点c的左指针与结点h的右指针分别指向( A)。

在这里插入图片描述

A.a, g B.a, c C.h, g D.g, c

19.二叉树线索化后,仍不能有效求解的问题是(D ) 。

A.中序线索二叉树中求中序前驱

B.中序线索二叉树中求中序后继

C.先序线索二叉树中求先序后继

D.后序线索二叉树中求后序后继

20.关键路径是AOE网中(A )

  1. 从源点到汇点的最长路径
  2. 从源点到汇点的最短路径
  3. 最长回路
  4. 最短路径(从源点到汇点的所有路径中,经过弧的数目最多的路径)

21.就平均性能而言,目前最好的内部排序方法是(D )

A、冒泡排序B、希尔排序

C、堆排序D、快速排序

22.最大容量为n的循环队列,队尾指针是rear,队头是front,则队空的条件是(B )

A、(rear+1)%n == front B、rear == front

C、rear+1 == front D、(rear-1)%n == front

23.设栈的输入序列是1,2,3,4则( D)不可能是其出栈序列

A、1,2,4,3 B、2,1,3,4

C、1,4,3,2D、4,3,1,2

24.顺序表比链表的存储密度更大,是因为(B )

  1. 顺序表的存储空间是预先分配的
  2. 顺序表不需要增加指针来表示元素之间的逻辑关系
  3. 链表的所有结点是连续的
  4. 顺序表的存储空间是不连续的

25.用顺序存储的方法将n个结点的完全二叉树中所有结点按层逐个依从左至右的次序存放在一维数组R[1:n]中,若结点R[i]有左孩子,则左孩子是(B ) 。

A.R[2i+2] B.R[2i] C.R[2i-1] D.R[2i+1]

26.一棵深度为k且只有k个结点的二叉树按照完全二叉树顺序存储的方式存放于一个一维数组R[n]中,则n至少是(C )才能确保正确存储。

A.2k B.2k+1 C. 2k-1 D. 2k

27.以下存储结构中,不是树的存储结构是 ( C) 。

A.孩子兄弟链表 B.双亲表示法

C.广义表D.孩子链表存储结构

28.对线性表,下列哪种情况下应当采用链表表示(B )

  1. 经常需要随机地存储元素
  2. 经常需要进行插入和删除操作
  3. 表中元素需要占据一片连续的存储空间
  4. 表中元素的个数不变

29.边远山区的N个小村庄,现要为他们建成能互相通信的网,并且总的花费最少,这可以归结为什么问题(D )

A、最短路径B、关键路径

C、拓扑排序D、最小生成树

30.二叉树采用二叉链表存储结构存储,根指针为t,下列递归算法求其叶子结点的个数, 算法的画线处应填的语句是(B )。

在这里插入图片描述

A.t->lchild == NULL && t->rchild != NULL

B.t->lchild == NULL && t->rchild == NULL

C.t->lchild == NULL

D.t->rchild == NULL

31.判断线索二叉链表中*p结点有右孩子结点的条件是( D)。

A.p->rchild!=NULL

B.p->rtag==1

C.p!=NULL

D.p->rtag==0

32.设有6个结点的无向图,该图至少应有( A)条边才能确保是一个连通图。

A、5 B、6 C、7 D、8

33.下列关于AOE网的叙述中,不正确的是(B )

  1. 关键活动不按期完成就会影响整个工程的完成时间
  2. 任何一个关键活动提前完成,那么整个工程将会提前完成。
  3. 所有的关键活动提前完成,那么整个工程将会提前完成。
  4. 某些关键活动提前完成,那么整个工程将会提前完成。

二、判断题

  1. 在二叉排序树中,根结点的值都小于孩子结点的值。( F )
  2. 对链表进行插入和删除操作时不必移动链表中结点。( T )
  3. 链栈与顺序栈相比,其特点之一是通常不会出现栈满的情况。( T )
  4. 中序遍历一棵二叉排序树可以得到一个有序的序列。( T )
  5. 堆是完全二叉树,完全二叉树不一定是堆。( T )
  6. 有回路的有向图不能完成拓扑排序。( T )
  7. 树有先根遍历与中根遍历两种遍历方法。( T )
  8. 树的孩子兄弟表示法是一种二叉链表表示法。( T )
  9. 在哈夫曼树中,权值较大的叶子结点一般离根结点较远。( F )
  10. 在哈夫曼编码中,当两个不同字符出现的频率相同时,其编码也相同。( F )
  11. 对于任何待排序序列来说,快速排序均快于冒泡排序。( F )
  12. 满二叉树一定是完全二叉树,但完全二叉树不一定是满二叉树。( T )
  13. 线性表的链式存储结构既方便其存取操作,也方便其插入与删除操作。( F )
  14. 一棵满二叉树中每棵子树都是完全二叉树。( T )
  15. 用二叉树的先序序列和后序序列可以导出它的中序序列。( F )
  16. 在某种遍历的线索二叉链表中,进行这种遍历时可以直接沿所有右指针一直搜索下去,从而访问所有结点。( F )
  17. 可以不用栈实现基于中序线索二叉链表对二叉树进行中序遍历。( T )
  18. 将一棵含有两个以上结点的树转换成二叉树后,该二叉树的根结点没有左子树。 ( F )
  19. 二叉树的第i层上一定有2 i -1个结点。( F )
  20. 算法分析的两个主要方面是时间复杂度和空间复杂度的分析。( T )
  21. 栈和队列也是线性表。如果需要,可对它们中的任一元素进行操作。( F )
  22. 线性表的链式存储结构一定优于顺序存储结构。( F )
  23. 单链表可以实现随机存取。( F )
  24. 2、在单链表中,要访问某个结点,只要知道该结点的地址即可;因此,单链表是一种随机存取结构。( F )
  25. 3、以链表作为栈的存储结构,出栈操作必须判别栈空的情况。( T )

三、填空题

  1. 链表相对于顺序表的优点是插入删除结点的时间复杂度为O(1)
  2. 程序段"i=1;while(i<=n) i=i*2;"的时间复杂度为O(n)
  3. 数据结构的四种基本类型中, 图 的元素是一对多关系。
  4. 一个算法的时间复杂度为(n3+n2log2n+14n)/n2,其数量级表示为 O(n^3)

5.设栈S和队列Q的初始状态为空,元素e1,e2,e3,e4,e5,e6依次通过栈S,一个元素出栈后即进入队列Q,若6个元素出队的序列是e2,e4,e3,e6,e5,e1,则栈的容量至少应该是3 。

6.一个循环队列Q的存储空间大小为M,其队头和队尾指针分别为front和rear,则循环队列中元素的个数为:(rear-front+M) % M 。

7.在具有n个元素的循环队列中,队满时具有n - 1 个元素。

8.设循环队列的容量为70,现经过一系列的入队和出队操作后,front为20,rear为11,则队列中元素的个数为61 。

  1. 两个串相等的充分必要条件是两个串的长度相等且对应位置上的字符相等 。
  2. 求子串在主串中首次出现的位置的运算称为 模式匹配 。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Python:每日一题之四平方和

题目描述 四平方和定理&#xff0c;又称为拉格朗日定理&#xff1a; 每个正整数都可以表示为至多 4 个正整数的平方和。 如果把 0 包括进去&#xff0c;就正好可以表示为 4 个数的平方和。 比如&#xff1a; 5 0^2 0^2 1^2 2^2&#xff1b; 7 1^2 1^2 1^2 2^2&am…

CF385D Bear and Floodlight

题意简述&#xff08;翻译&#xff09; 在平面直角坐标系上&#xff0c;沿直线从 (l,0)(l,0)(l,0) 走到 (r,0)(r,0)(r,0) 。有 nnn 盏灯&#xff0c;第 iii 盏灯位于 (xi,yi)(x_i,y_i)(xi​,yi​) &#xff0c;可以照亮的角度为 aia_iai​ &#xff08;注意不是弧度制&#xf…

浅尝辄止:数据库--数仓大数据平台--数据中台

很久没有更新博客了&#xff0c;今天主要是想谈一谈自己工作几年总结的心得。 1.浅尝辄止 数据库&#xff1a;基于mysql&#xff0c;oracle来实现数据库分析&#xff08;存储在数据库&#xff0c;使用数据库语言直接分析&#xff0c;最后成报表形式&#xff09;。 数仓&大…

rust编程-通用编程概念(chapter 3.2 3.3 数据类型和函数)

目录 2. 数据类型 2.2 复合类型 3. 函数 2. 数据类型 Rust中的所有值都是有特定数据类型的&#xff0c;rust是强类型语言&#xff0c;也是静态类型语言&#xff08;编译器类型必须确定&#xff09;。 编译器可以根据值来进行类型推断&#xff0c;但对有歧义的&#xff0c;必…

计算机毕业设计——基于SpringBoot框架的网上购书系统的设计与实现

文章目录前言一、背景及意义选题背景选题目的二、系统设计主要功能运行环境三、系统实现部分页面截图展示部分代码展示四、源码获取前言 提示&#xff1a;这里可以添加本文要记录的大概内容&#xff1a; 二十一世纪是网络化&#xff0c;信息化的时代&#xff0c;为了满足广大…

Linux的子shell

linux运行一个shell脚本&#xff0c;其本身能启动它自己的子进程。 一般来说&#xff0c;脚本里的一个外部命令能生成出一个紫禁城&#xff0c;而Bash内建命令却不这样。 将一组命令放在圆括号里执行&#xff0c;形成一个命令列表连续执行。在圆括号里的命令会在一个子shell里…

【算法面试题汇总】LeetBook列表的算法面试题汇总---排序与检索题目及答案

整理不易留个小心心呗&#x1f970; 如果有更好的或者是我有错的地方还请各位大佬指出哦 有些是copy的还望不要介意 排序与检索最大数摆动排序Ⅱ寻找峰值寻找重复数最大数 给定一组非负整数 nums&#xff0c;重新排列每个数的顺序&#xff08;每个数不可拆分&#xff09;使之组…

【实验记录1】行人重识别

使用ResNet50训练Market15010x00参考0x01准备数据集0x02搭建模型ResNet500x03test0x04可视化结果0x00参考 ⭐️郑哲东博士的GitHub 从零开始行人重识别-知乎 全篇对于上手person ReId 具有重要意义 环境&#xff1a; torch_version1.13.0cu117 python_version3.8.13 torch_ver…

CentOS7下Redis7安装

​欢迎光临我的博客查看最新文章: https://river106.cn 目前Redis的最新稳定版本已到7.0&#xff0c;本文介绍redis-7.0.5在CentOS7.6下的安装使用。 1、下载 Redis下载地址&#xff1a;https://redis.io/download/&#xff0c;或者使用命令直接下载&#xff1a; cd /opt/so…

序列化、反序列化

一、序列化、反序列化概念 序列化(Serialization)是一种将对象以一连串的字节描述的过程,将程序中的对象,放入硬盘(文件)中保存就是序列化,如果不存放在磁盘中,而是一直存放在内存中,会增大内存的消耗;序列化就是将对象的状态信息转换为可以存储或传输的形式的过程;…

Scrapy基本概念——Item Pipeline

一、Item Pipeline介绍 蜘蛛抓取的每一个Item都会被发送到Item Pipeline。根据ITEM_PIPELINES的优先级设置&#xff0c;不同的Item Pipeline依次处理每一个Item&#xff0c;最后可删除该Item不做处理&#xff0c;也可将该Item发送到下一个Item Pipeline。Item Pipeline的主要用…

基于8086的压力检测器设计(Proteus8仿真)

一、实验名称 基于 proteus 设计压力检测计 二、实验目的  深刻理解并掌握基于 8086 处理器的系统工程的工作原理和流程&#xff1b;  深刻理解并掌握 8086 处理器的工作原理、引脚功能&#xff1b;  深刻理解并掌握压力传感器件 MPX4115 的工作原理、引脚功能&#x…

C++:函数指针进阶:看完还不用std::function来捶我

1&#xff1a;函数指针的背景 我们先简单聊一下函数指针的背景&#xff0c;具体使用请参考我的这篇博客 C &#xff1a;函数&#xff1a; 函数指针_hongwen_yul的博客-CSDN博客 假设现在有这样一段代码&#xff1a;C/C中可以使用指针指向一段代码&#xff0c;这个指针就叫函…

【季报分析】百度2022年Q3:逆势而上

11月22日&#xff0c;百度&#xff08;09888.HK&#xff09;发布了2022年第三季度的业绩报告&#xff0c;尽管面对疫情不断侵扰、外部环境压力带来的诸多挑战&#xff0c;百度在Q3依然取得了相当不错的财务数据&#xff0c;尤其是在自动驾驶、智能硬件方面的表现尤为突出&#…

【Linux】缓冲区

目录&#x1f308;前言&#x1f337;1、缓冲区&#x1f361;1.1、缓冲区的理解&#x1f362;1.2、缓冲区在哪里&#xff1f;&#x1f363;1.3、缓冲区的刷新策略&#x1f363;1.4、模拟实现C库函数&#x1f338;2、标准输出流与错误流的区别&#x1f364;2.1、概念&#x1f365…

微客云升级会员制度

会员制度 会员制度是一种人与人或组织与组织之间进行沟通的媒介&#xff0c;它是由某个组织发起并在该组织的管理运作下&#xff0c;吸引客户自愿加入&#xff0c;目的是定期与会员联系&#xff0c;为他们提供具有较高感知价值的利益包。 Part 1 会员制度 建立长期稳定的客…

Python测试框架之Pytest基础入门

Pytest简介 Pytest is a mature full-featured Python testing tool that helps you write better programs.The pytest framework makes it easy to write small tests, yet scales to support complex functional testing for applications and libraries. 通过官方网站介绍…

Vue子组件传自定义事件给父组件

我们知道组件之间是不能够进行通信的&#xff0c;都是相互独立的&#xff0c;你用不了我的状态和方法&#xff0c;我也用不了你的&#xff0c;那如何实现通信呢&#xff0c;可以间接实现&#xff1b; 实现父组件和子组件的通信&#xff1a; 子组件想用父组件的状态需要父组件…

Apache ShardingSphere(二) 基本使用

文章目录二 ShardingSphere JDBC 基本使用2.1 ShardingSphere JDBC 水平分表2.1.1 案例入门2.1.2 解读配置文件2.1.3 其他测试2.1.4 延伸问题2.2 ShardingSphere JDBC 水平分库2.2.1 案例入门2.2.2 解读配置文件2.1.3 其他测试2.3 ShardingSphere JDBC 广播表2.3.1 基本案例入门…

矩阵链相乘(动态规划)

【问题描述】给定n个矩阵M1,M2...MnM_1,M_2...M_nM1​,M2​...Mn​&#xff0c;他们的维数分别是r1∗c1,r2∗c2...rn∗cnr_1*c_1,r_2*c_2...r_n*c_nr1​∗c1​,r2​∗c2​...rn​∗cn​&#xff0c;要求使用【动态规划】的策略求解矩阵连乘的最优计算代价(总乘法次数最少)。题目…