单项选择-->【 1 】
( Lib___Number: 5 )
1. 下列哪些是树的特性?( )
A. 树是线性结构
B. 树是非线性结构
C. 树是图结构
D. 树是集合结构
【请选择:】 【
A 】 【
B 】 【
C 】 【
D 】
【解析】树是非线性结构,由节点和边组成,是图论中的基本概念。 A 错误:线性结构是一对一关系(如链表、栈、队列),树不是线性。 B 正确:树是一对多的非线性层次结构。 C 错误:树是特殊的无环连通图,但不能直接说树就是图结构(分类维度不同)。 D 错误:集合结构元素间无任何关联,树有明确层次父子关系,不是集合结构。
单项选择-->【 2 】
( Lib___Number: 46 )
2. 下列哪些是树的特性?
A. 树是线性结构
B. 树是非线性层次结构
C. 树是集合结构
D. 树的每个节点只能有一个子节点
【请选择:】 【
A 】 【
B 】 【
C 】 【
D 】
【参考】数据结构中树的核心特性可归纳为以下7条,这是树区别于线性表、图等其他数据结构的本质特征:
?1.唯一根节点?:非空树有且仅有一个特殊的根结点,该结点没有任何前驱结点,是整个树结构的唯一起点 。
?2.无回路无环?:树中不存在任何闭合环路,任意两个结点之间有且仅有一条唯一的简单路径相连,不会出现图结构中的多路径交叉情况 。
?3.边数固定规则?:一棵包含n个结点的非空树,恰好拥有?n-1条边?,这是树最基础的量化特征,所有结点通过这些边完成层级连接 。
?4.层次一对多关系?:树是典型的非线性层次结构,除根节点外,其余所有结点有且仅有一个直接父结点,但每个结点可以拥有0个或多个子结点,呈现“一对多”的分支关系 。
?5.递归子树结构?:除根结点外,其余结点可被划分为m个互不相交的有限集合,每个集合本身又是一棵独立的子树,完全符合树的定义,具备天然的递归特性 。
?6.无孤立分支?:树中所有结点都连通,不存在完全脱离主结构的孤立结点,任意结点都可以通过唯一路径回溯到根节点。
?7.分支无交叉?:树的所有子树之间完全互不相交,不会出现子树结点跨分支指向其他分支结点的情况,保证了层级结构的纯粹性。
单项选择-->【 3 】
( Lib___Number: 52 )
3. 以下哪个不属于常见的数据结构?
A. 栈
B. 队列
C. 数组
D. 变量
【请选择:】 【
A 】 【
B 】 【
C 】 【
D 】
【参考】常见的数据结构可分为?线性结构?和?非线性结构?两大类别,是计算机程序中组织、存储数据的核心基础,以下是最主流的8种典型类型:
线性结构(元素间一对一关系)
这类结构的元素呈现线性排列,最多只有一个直接前驱和一个直接后继,逻辑关系简单直观。
?数组?:最基础的数据结构,在连续内存空间中存储同类型元素,支持通过索引直接快速访问元素,缺点是插入、删除操作需要移动大量元素,扩容不灵活 。
?链表?:由数据域和指针域组成的节点串联而成,内存无需连续,插入、删除操作仅需修改指针即可完成,效率极高,但随机访问元素需要从头遍历,速度较慢,可细分为单向链表、双向链表、循环链表 。
?栈?:特殊的受限线性表,严格遵循?后进先出(LIFO)?原则,仅允许在栈顶进行入栈、出栈操作,广泛用于函数调用栈、表达式求值、文本撤销功能 。
?队列?:特殊的受限线性表,严格遵循?先进先出(FIFO)?原则,队尾负责入队、队头负责出队,常用于任务调度、消息缓冲区、广度优先遍历场景 。
非线性结构(元素间一对多/多对多关系)
这类结构的元素不再呈现单一的线性排列,一个节点可以有多个直接前驱或直接后继,适合表达复杂的层级、关联关系。
?树?:典型的一对多层级结构,有且仅有一个根节点,其余节点最多有一个父节点,可细分为二叉树、完全二叉树、满二叉树等,广泛用于文件系统、数据库索引、搜索引擎排序 。
?堆?:特殊的完全二叉树,分为大顶堆(根节点值最大)和小顶堆(根节点值最小),可快速获取最大值/最小值,是实现优先队列、Top K问题、堆排序的核心结构 。
?图?:多对多的复杂关联结构,由顶点集合和边集合组成,支持无向图、有向图两种形态,是社交网络、地图导航、网络拓扑分析的核心数据结构 。
?散列表(哈希表)?:通过哈希函数将键映射到对应存储位置,可实现O(1)时间复杂度的快速查找,是Python字典、缓存系统的底层实现原理,核心需要解决哈希冲突问题 。
单项选择-->【 4 】
( Lib___Number: 53 )
4. 栈的操作遵循的原则是?
A. 先进先出
B. 先进后出
C. 随机存取
D. 后进后出
【请选择:】 【
A 】 【
B 】 【
C 】 【
D 】
【参考】栈的操作严格遵循?后进先出(Last In First Out,简称LIFO,也可称先进后出FILO)?的核心原则,即最后被压入栈的元素,会最先被弹出栈 。
单项选择-->【 5 】
( Lib___Number: 54 )
5. 以下哪个是URL的完整组成部分?
A. 协议名
B. 主机名
C. 路径
D. 以上都是
【请选择:】 【
A 】 【
B 】 【
C 】 【
D 】
【参考】URL(统一资源定位符)的完整标准格式为:协议://[身份认证信息@]主机名:端口/路径;参数?查询字符串#片段标识,其中协议和主机名是必填核心部分,其余为可选扩展部分,各部分分工明确,共同完成互联网资源的精准定位 。
单项选择-->【 6 】
( Lib___Number: 213 )
6. 线性结构的数据元素之间存在的关系是( )。
A.一对一
B.一对多
C.多对一
D.多对多
【请选择:】 【
A 】 【
B 】 【
C 】 【
D 】
【解析】线性结构的特点是数据元素除同属一个数据对象外,数据元素之间存在一对一的关系。
单项选择-->【 7 】
( Lib___Number: 214 )
7. 某校部分机构如图所示,与该结构相似的数据结构是( )。
A.集合结构
B.线性结构
C.树形结构
D.图状结构
【请选择:】 【
A 】 【
B 】 【
C 】 【
D 】
【解析】树形结构的特点是数据元素除同属一个数据对象外,数据元素之间存在一对多的关系。
单项选择-->【 8 】
( Lib___Number: 215 )
8. 链式存储结构中的每个节点包含( )。
A.数据域和索引域
B.数据域和颜色域
C.指针域和索引域
D.数据域和指针域
【请选择:】 【
A 】 【
B 】 【
C 】 【
D 】
【解析】在链式存储结构中,除存储数据元素信息(数据域)外,还要存储它的后继元素的存储地址(指针域),这两个部分信息组或链式存储结构中的节点。
单项选择-->【 9 】
( Lib___Number: 216 )
9. 在Python言中,执行语句b=float(imnput("请输人数值:")),若输入“35.5”,则变量b的数据类型是( )。
A.整型
B.浮点型
C.字符串型
D.布尔型
【请选择:】 【
A 】 【
B 】 【
C 】 【
D 】
【解析】在Python语言中,input ()函数获取的输人内容原本为字符串类型,float()函数会将其强制转换为浮点型,赋值后变量b的数据类型为浮点型。
单项选择-->【 10 】
( Lib___Number: 217 )
10. 下列关于抽象数据类型的作用的说法,错误的是( )。
A.抽象数据类型的基本思想是抽象
B.Python自定义函数作为能完成某种特定功能的模块,体现了模块化编程思想
C.抽象数据类型不允许程序员自由选择数据结构,目的是规范设计,减少出错
D.抽象数据类型把实际问题分解成多个规模较小且容易处理的问题,体现了模块化思想
【请选择:】 【
A 】 【
B 】 【
C 】 【
D 】
【解析】高级程序设计语言中没有提供的数据类型需要人为定义,可以通过建立抽象数据类型来实现,即抽象数据类型给程序员提供了构造自定义数据类型的手段。故选项C错误。
单项选择-->【 11 】
( Lib___Number: 218 )
11. 在数据结构中,下列关于线性表的说法,错误的是( )。
A.线性表中的数据元素可以是一个数或一个字符,也可以是一个对象
B.同一线性表的各数据元素可以具有不同的数据类型和长度
C.线性表的存储结构可以是顺序存储结构或链式存储结构
D.线性表中除第一个和最后一个元素外,其他元素都有且仅有一个前驱和一个后继
【请选择:】 【
A 】 【
B 】 【
C 】 【
D 】
【解析】线性表具有均匀性,即虽然不同数据表的数据元素可以是各种各样的,但同一线性表的各数据元素必定具有相同的数据类型和长度。故选项B错误。
单项选择-->【 12 】
( Lib___Number: 219 )
12. 当分配较多的存储空间会造成浪费,分配空间不足难以扩充,此时可以采用的存储方式是( )。
A.顺序存储
B.链式存储
C.混合存储
D.单一存储
【请选择:】 【
A 】 【
B 】 【
C 】 【
D 】
【解析】采用顺序存储方式时,存在插人、删除操作需要移动大量元素的问题,并且一旦分配了存储空间就难以改变,因此分配较多的存储空间会造成浪费,分配空间不足难以扩充,此时可以采用链式存储解决这些问题。
单项选择-->【 13 】
( Lib___Number: 220 )
13. 下列关于栈的说法,错误的是( )。
A.栈是一种操作受限的线性结构
B.栈的特点是先进后出
C.栈不能为空,至少应包含一个元素
D.栈仅允许在表的一端进行插人或删除操作
【请选择:】 【
A 】 【
B 】 【
C 】 【
D 】
【解析】栈可以为空,不含任何数据元素的栈称为空栈。故选项C错误。
单项选择-->【 14 】
( Lib___Number: 221 )
14. 下列不属于栈的基本运算的是( )。
A.将栈置空
B.删除栈顶元素
C.删除栈底元素
D.判断栈是否为空
【请选择:】 【
A 】 【
B 】 【
C 】 【
D 】
【解析】栈是一种先进后出的线性表,插人和删除操作均限定了只能在栈顶进行。故选项C错误。
单项选择-->【 15 】
( Lib___Number: 222 )
15. 下列场景中,体现了栈的后进先出特性的是()。★
A.银行的排队叫号系统
B.操作系统中的任务调度
C.计算器中的括号匹配算法
D.网页浏览器的前进、后退功能
【请选择:】 【
A 】 【
B 】 【
C 】 【
D 】
【解析】网页浏览器的前进、后退功能体现了栈的后进先出特性。浏览网页时,每打开一个新的页面相当于将这个页面的地址人栈,点击后退按钮时,会回到最近访问过的页面,即栈顶的页面,这符合栈的后进先出规则。
单项选择-->【 16 】
( Lib___Number: 223 )
16. 若栈的初始状态为空,现有元素A、B、C、D依次入栈,然后进行两次出栈操作,再入栈元素E,此时栈顶元素是( )
A.B
B.C
C.D
D.E
【请选择:】 【
A 】 【
B 】 【
C 】 【
D 】
【解析】元素A、B、C、D人栈后,栈顶为D。进行两次出栈操作,移除D和C,栈顶变为B。接着E人栈,栈顶变为E。
单项选择-->【 17 】
( Lib___Number: 224 )
17. 顺序队列执行人队操作时,队列实际元素已达到最大长度导致的溢出(造成了数据确实的丢失)现象称为( )。★
A.假溢出
B.真溢出
C.队空
D.循环溢出
【请选择:】 【
A 】 【
B 】 【
C 】 【
D 】
【解析】当队列中的实际元素个数达到队列最大长度maxsize时,队列满,这时做入队操作将产生空间溢出的现象,即为真溢出。真溢出是一种出错状态,应设法避免。
单项选择-->【 18 】
( Lib___Number: 225 )
18. 为解决顺序队列假溢出,通常采用的数据结构是( )。
A.栈
B.循环队列
C.链表
D.顺序表
【请选择:】 【
A 】 【
B 】 【
C 】 【
D 】
【解析】为充分利用队列的存储空间,克服“假溢出"现象,可以将数组存储区想象为个首尾相接的圆环,并称存储在其中的队列为循环队列。
单项选择-->【 19 】
( Lib___Number: 226 )
19. 依次在初始为空的队列中插入元素a、b、c、d、e后,紧接着做了两次删除操作,此时的队首元素是( )。
A.a
B.b
C.c
D.d
【请选择:】 【
A 】 【
B 】 【
C 】 【
D 】
【解析】队列的特点是在队尾插入元素,在队头删除元素。依次在初始为空的队列中插入元素a、b、e、d、e以后,紧接着做了两次删除操作,此时的队首元素是c,下一个元素是d,再下一个元素是e。
单项选择-->【 20 】
( Lib___Number: 227 )
20. 有队列:20,67,89,2,4,3,16,27,1。队列中第一个人队的元素是20,则出队时,第三个出队的元素是( )。
A.89
B.2
C.16
D.1
【请选择:】 【
A 】 【
B 】 【
C 】 【
D 】
【解析】队列操作规则为先进先出原则。根据题干,第一个人队的是20,第二个是67,第三个是89,则出队时,第三个出队的是89。
单项选择-->【 21 】
( Lib___Number: 228 )
21. 下列关于字符串的说法,错误的是( )。
A.字符串可以比较大小
B.字符串是字符的有限序列
C.空串是由空格组成的字符串
D.任何字符串都是自己的子串
【请选择:】 【
A 】 【
B 】 【
C 】 【
D 】
【解析】n为字符串中字符的个数,称为串的长度。当n=0时,称字符串为空串,可表示为""。故选项C错误。
单项选择-->【 22 】
( Lib___Number: 229 )
22. 树最适合用来表示( )。
A.有序数据元素
B.无序数据元素
C.元素之间无联系的数据
D.元素之间具有层次关系的数据
【请选择:】 【
A 】 【
B 】 【
C 】 【
D 】
【解析】树结构是一种具有层次关系的非线性结构,因此树最适合用来表示元素之间具有层次关系的数据。
单项选择-->【 23 】
( Lib___Number: 230 )
23. 二叉树的很多操作的前提和基础是( )。
A.构造空二叉树
B.查找节点
C.遍历二叉树
D.删除节点
【请选择:】 【
A 】 【
B 】 【
C 】 【
D 】
【解析】二叉树的基本操作包括构造空二叉树、查找二叉树中的某个节点、删除二叉树中的某个节点和遍历二叉树等,而二叉树的很多操作都以遍历二叉树为前提和基础。
单项选择-->【 24 】
( Lib___Number: 338 )
24. 数据结构是相互之间存在一种或多种特定关系的( )的集合。
A.数据项
B.数据对象
C.数据元素
D.数据类型
【请选择:】 【
A 】 【
B 】 【
C 】 【
D 】
【解析】数据结构是相互之间存在一种或多种特定关系的数据元素的集合。
单项选择-->【 25 】
( Lib___Number: 339 )
25. 数据的逻辑结构是指( )。
A.数据的计算方式
B.数据的物理存储单元
C.数据元素之间的逻辑关系
D.数据元素在计算机中的实际存储方式
【请选择:】 【
A 】 【
B 】 【
C 】 【
D 】
【解析】逻辑结构是指从具体问题抽象出来的数学模型。它研究的是数据元素之间的逻辑关系,于具体的计算无关。
单项选择-->【 26 】
( Lib___Number: 340 )
26. 在Python语言的数据结构中,根据数据元素之间的关系,下列选项中不属于基本结构的是( )。
A.列表
B.图状结构
C.树形结构
D.线性结构
【请选择:】 【
A 】 【
B 】 【
C 】 【
D 】
【解析】根据元素之间的关系的不同特点,通常将逻辑结构分为四种基本类型:集合结构、线性结构、树形结构和图状结构
单项选择-->【 27 】
( Lib___Number: 341 )
27. 数据元素及其关系在计算机存储器内的表示,也称数据的( )。
A.逻辑结构
B.物理结构
C.抽象结构
D.线性结构
【请选择:】 【
A 】 【
B 】 【
C 】 【
D 】
【解析】存储结构也称物理结构,是逻辑结构在计算机中的存储方式,它包括数据元素的存储和数据元素之间关系的存储。
单项选择-->【 28 】
( Lib___Number: 342 )
28. 在Python语言中,float的数据类型是()。
A.整型
B.浮点型
C.字符串型
D.布尔型
【请选择:】 【
A 】 【
B 】 【
C 】 【
D 】
【解析】Python语言中常见的数据类型有整型、浮点型、字符串型、布尔型、列表等等。其中float即为浮点型的标识符。
单项选择-->【 29 】
( Lib___Number: 343 )
29. 线性表是由n个( )组成的有限序列(n>=0且为整数)。
A.字符
B.表元素
C.数据项
D.数据元素
【请选择:】 【
A 】 【
B 】 【
C 】 【
D 】
【解析】线性表是由n个相同类型的数据元素组成的有限序列。
单项选择-->【 30 】
( Lib___Number: 344 )
30. 线性表的特点是每个元素都有一个前驱和后继。
A.正确
B.错误
C.选前面
D.选前面
【请选择:】 【
A 】 【
B 】 【
C 】 【
D 】
【解析】线性表,首元素没有前驱,尾元素没有后继,其他元素前面均有一个元素(直接前驱),后面也只有一个数据元素(直接后继)。
单项选择-->【 31 】
( Lib___Number: 345 )
31. 线性表若采用链式存储结构时,要求内存中可用存储单元的地址( )。
A.必须是连续的
B.一定是不连续的
C.连续或不连续都可以
D.部分地址必须是连续的
【请选择:】 【
A 】 【
B 】 【
C 】 【
D 】
【解析】线性表的链式存储不要求存储空间连续,也无须事先指定最大长度。
单项选择-->【 32 】
( Lib___Number: 346 )
32. 线性表L适用于使用链式结构实现的情况是 ( )。
A.L中节点结构复杂
B.L中含有大量的节点
C.需经常修改L中的节点值
D.需不断对L进行删除、插入
【请选择:】 【
A 】 【
B 】 【
C 】 【
D 】
【解析】采用顺序存储方式时,存在插入 、删除操作需要移动大量元素的问题,并且一旦分配了存储空间 就难以改变,因此分配较多的存储空间会造成浪费,分配空间不足难以扩充,此时可以采用链式 存储解决这些问题。
单项选择-->【 33 】
( Lib___Number: 347 )
33. (判断对错)顺序存储是指用内存单元依次存储线性表中的数据元素。
A.正确
B.错误
C.
D.
【请选择:】 【
A 】 【
B 】 【
C 】 【
D 】
【解析】顺序存储是指用一段地址连续的内存单元依次存储线性表中的数据元素。
单项选择-->【 34 】
( Lib___Number: 348 )
34. 下列关于栈的说法,正确的是( )。
A.在栈中只能删除元素而不能插入元素
B.在栈中只能插入元素而不能删除元素
C.栈是特殊的线性表,只能在一端插入或删除元素
D.栈是特殊的线性表,只能在一端插入元素,而在另一端删除元素
【请选择:】 【
A 】 【
B 】 【
C 】 【
D 】
【解析】栈是限定仅能在一端进行插入和删除操作的特殊线性表,即一种操作受限的线性结构。
单项选择-->【 35 】
( Lib___Number: 349 )
35. 在栈中,元素的移除操作称为( )。
A.入栈
B.出栈
C.压栈
D.顶栈
【请选择:】 【
A 】 【
B 】 【
C 】 【
D 】
【解析】向栈中插入元素的操作称为入栈,删除栈顶元素的操作称为出栈。
单项选择-->【 36 】
( Lib___Number: 350 )
36. 如果一个栈的初始状态为空,现有元素1,2,3依次入栈,之后连续进行两次出栈操作,此时栈顶元素是( )。
A.1
B.2
C。3
D.空
【请选择:】 【
A 】 【
B 】 【
C 】 【
D 】
【解析】元素1、2、3依次入栈后,栈内元素从栈底到栈顶为1->2->3,连续两次出栈,先出栈顶的3,再出栈顶的2,此时栈内仅剩元素1,即栈顶元素为1.
单项选择-->【 37 】
( Lib___Number: 351 )
37. 元素R1、R2、R3、R4、R5入栈的顺序为R1、R2、R3、R4、R5,如果第一个出栈的是R3,那么第5个出栈的不可能是( )。
A.R1
B.R2
C.R4
D.R5
【请选择:】 【
A 】 【
B 】 【
C 】 【
D 】
【解析】元素R1、R2、R3、R4、R5依次入栈,若第一个出栈的元素是R3,说明进栈顺序为R1、R2、R3,此时先出栈R3,则栈内元素为R1和R2,R2为栈顶,因为一共有5个元素,而R2一定在R1之前出栈,则R2一定不会是最后一个出栈的,即不会是第5个出栈的。(R4、R5因为随时可入栈随时可出栈是不是最后出栈无法确定)
单项选择-->【 38 】
( Lib___Number: 352 )
38. 队列的插入操作是在( )进行的。
A.队首
B.队尾
C.队首元素后
D.队列任意位置
【请选择:】 【
A 】 【
B 】 【
C 】 【
D 】
【解析】队列允许删除的一端为队头,允许插入的一端为队尾。
单项选择-->【 39 】
( Lib___Number: 353 )
39. 下列关于队列的说法,错误的是 ( )。
A.队列属于线性表
B.队列一定在队尾增加新数据
C.队列按“先进后出”原则组织数据
D.队列可以是空的,也可以包含多个元素
【请选择:】 【
A 】 【
B 】 【
C 】 【
D 】
【解析】队列限定了只允许在线性表的一端进行删除,而在另一端进行插入操作,因而形成了这样一个特点:先入队的元素先出队,后入队的元素后出队,即“先进先出,后进后出”。
单项选择-->【 40 】
( Lib___Number: 354 )
40. 一个队列的数据入队序列是1、2、3、4,则该队列的出队序列是( )。
A.1、2、3、4
B.1、4、3、2
C.3、2、4、1
D.4、3、2、1
【请选择:】 【
A 】 【
B 】 【
C 】 【
D 】
【解析】队列出队序列与入队序列一致。
单项选择-->【 41 】
( Lib___Number: 355 )
41. (判断对错)队列所有元素呈现线性特征,每个元素都既有一个前驱点,又有一个后继点。
A、正确
B、错误
C、
D、
【请选择:】 【
A 】 【
B 】 【
C 】 【
D 】
【解析】队列中所有元素呈现线性特征,队首元素只有一个后继点,队尾元素只有一个前驱点,其他元素既有一个前驱点,又有一个后继点。
单项选择-->【 42 】
( Lib___Number: 356 )
42. 字符串a="I love my hometown.",下列选项中,不是该字符串的字串的是( )。
A."I l"
B."lo"
C."My"
D."to"
【请选择:】 【
A 】 【
B 】 【
C 】 【
D 】
【解析】子串要求字符 在原字符串中连续且顺序一致。原字符串中实际为小写“my”,所以选项“My”不是该字符子串。
单项选择-->【 43 】
( Lib___Number: 357 )
43. 树的数据结构属于( )。
A.线性结构
B.网状结构
C.集合结构
D.非线性结构
【请选择:】 【
A 】 【
B 】 【
C 】 【
D 】
【解析】树结构是一种具有层次关系的非线性结构。