数据结构知识点题目复习
线性表,链表
-
链表的特点:插入、删除不需要移动元素;不必事先估计存储空间;所需空间与线性长度成正比。
-
设h为不带头结点的单向链表。在h的头上插入一个新结点t的语句是:
t->next=h; h=t;
-
对于一个具有N个结点的单链表,在给定值为x的结点后插入一个新结点的时间复杂度为 : O(N)
-
带头结点的单链表h为空的判定条件是: h->next == NULL;
-
在单链表中,若p所指的结点不是最后结点,在p之后插入s所指结点,则执行 : s->next=p->next; p->next=s;
-
将两个结点数都为N且都从小到大有序的单向链表合并成一个从小到大有序的单向链表,那么可能的最少比较次数是: N
-
已知表头元素为c的单链表在内存中的存储状态如下表所示:
现将f存放于1014H处,并插入到单链表中,若f在逻辑上位于a和e之间,则a、e、f的“链接地址”依次是: 1014H, 1004H, 1010H -
对于顺序存储的长度为N的线性表,访问结点和增加结点的时间复杂度为: O(1), O(N)
-
若某线性表最常用的操作是存取任一指定序号的元素和在最后进行插入和删除运算,则利用哪种存储方式最节省时间? 顺序表
-
在N个结点的顺序表中,算法的时间复杂度为O(1)的操作是:
访问第i个结点(1≤i≤N)和求第i个结点的直接前驱(2≤i≤N)
-
顺序表中第一个元素的存储地址是100,每个元素的长度为2,则第5个元素的地址是 108
-
对于下图所示的单链表,下列表达式值为真的是 P2.getNext()==null
-
数据结构反映了数据元素之间的结构关系。
单链表是一种 :非顺序存储线性表 。
-
带头结点的单链表first为空的判定条件是:first->link== NULL;
-
单链表的每个结点中包括一个指针next,它指向该结点的后继结点。现要将指针q指向的新结点插入到指针p指向的单链表结点之后,下面的操作序列正确: q->next =p->next; p->next=q;
-
在单链表中,要删除某一指定结点,必须先找到该结点的 :直接前驱
栈
-
设一个栈的输入序列是1、2、3、4、5,则下列序列中,是栈的合法输出序列的是? 3 2 1 5 4
-
令P代表入栈,O代表出栈。则将一个字符串3*a+b/c变为3 a * b c / +的堆栈操作序列是哪个?(例如将ABC变成BCA的操作序列是PPOPOO。) POPPOOPPOPPOOO
-
表达式a*(b+c)-d的后缀表达式是: a b c + * d -
-
设一个堆栈的入栈顺序是1、2、3、4、5。若第一个出栈的元素是4,则最后一个出栈的元素必定是: 1或者5
-
利用大小为n的数组(下标从0到n-1)存储一个栈时,假定栈从数组另一头开始且top==n表示栈空,则向这个栈插入一个元素时,修改top指针应当执行: top--
-
若top为指向栈顶元素的指针,判定栈S(最多容纳m个元素)为空的条件是: S->top == -1
-
从栈顶指针为ST的链栈中删除一个结点且用X保存被删结点的值,则执行: X= ST->data; ST = ST->next;
-
若栈采用顺序存储方式存储,现两栈共享空间V[m]:top[i]代表第i(i=1或2)个栈的栈顶;栈1的底在V[0],栈2的底在V[m-1],则栈满的条件是: top[1]+1==top[2]
-
对空栈 S 进行 Push 和 Pop 操作,入栈序列为 a, b, c, d, e,经过 Push, Push, Pop, Push, Pop, Push, Push, Pop 操作后,得到的出栈序列是: b, c, e
-
有六个元素以6、5、4、3、2、1的顺序进栈,问哪个不是合法的出栈序列? 3 4 6 5 2 1
-
从栈顶指针为ST的链栈中删除一个结点且用X保存被删结点的值,则执行: X= ST->data; ST = ST->next;
-
栈的基本运算的是: 删除栈顶元素 ;判断栈是否为空 ;将栈置为空栈
-
链式栈与顺序栈相比,一个比较明显的优点是: 通常不会出现栈满的情况
队列
-
若已知一队列用单向链表表示,该单向链表的当前状态(含3个对象)是:1->2->3,其中x->y表示x的下一节点是y。此时,如果将对象4入队,然后队列头的对象出队,则单向链表的状态是: 2->3->4
-
关于栈和队列的下列说法正确的是(A)
A. 栈是后进先出的结构,出栈时除了栈顶元素,其余元素无需移动;B. 栈的插入操作是在栈顶进行,插入时需将栈内所有元素后移;
C. 循环队列的出队操作删除的是队头元素,采用循环队列存储时,其余队列元素均需要移动;
D. 链队列的入队操作在表尾进行,操作时间与队列长度成正比
-
为解决计算机主机与打印机之间速度不匹配问题,通常设置一个打印数据缓冲区,主机将要输出的数据依次写入该缓冲区,而打印机则依次从该缓冲区中取出数据。该缓冲区的逻辑结构应该是? 队列
-
在一个不带头结点的非空链式队列中,假设f和r分别为队头和队尾指针,则插入s所指的结点运算是 r->next=s; r=s;
-
若用大小为6的数组来实现循环队列,且当前front和rear的值分别为0和4。当从队列中删除两个元素,再加入两个元素后,front和rear的值分别为多少? 2和0
二叉树
-
先序遍历图示二叉树的结果为 : A,B,D,H,I,E,C,F,G
-
如果二叉树的前序遍历结果是12345,后序遍历结果是24531,那么该二叉树的中序遍历结果是什么? 21435
-
若一棵二叉树的前序遍历序列是{ 4, 2, 1, 3, 6, 5, 7 },中序遍历序列是{ 1, 2, 3, 4, 5, 6, 7 },则下列哪句是错的? A
A. 6是3的父结点
B. 这是一棵完全二叉树
C. 所有的奇数都在叶子结点上
D. 这是一棵二叉搜索树
-
任何一棵二叉树的叶结点在先序、中序和后序遍历序列中的相对次序 : 不发生改变
-
已知一棵普通树的广义表表示为a(b, c(e(h, i, j), f), d(g)),则此树的度为 3
-
具有五层结点的完全二叉树至少有 16 个结点。
-
一棵二叉树中,双分支结点数为15,单分支结点数为30,则叶子结点数为 16 个。 n0 = n2 + 1
-
一棵n个结点的完全二叉树从根结点这一层开始按从上往下,从左到右的顺序把结点依次存储在数组A[1..n]中。设某个结点在数组中的位置为i, 则若它有右孩子,则右孩子结点的位置是 2i+1 。
-
在高度为h的完全二叉树中 : 第i (1≤i<h) 层上有2^(i-1)个结点
-
有关树和二叉树的叙述 :
树中的最大度数没有限制,而二叉树结点的最大度数为2;
树的结点无左右之分,而二叉树的结点有左右之分;
树和二叉树均为树形结构 .
树的应用
-
将{ 32, 2, 15, 65, 28, 10 }依次插入初始为空的二叉搜索树。则该树的前序遍历结果是: 32, 2, 15, 10, 28, 65
-
将 {28, 15, 42, 18, 22, 5, 40} 逐个按顺序插入到初始为空的最小堆(小根堆)中。则该树的前序遍历结果为: 5, 18, 28, 22, 15, 42, 40
-
设最小堆(小根堆)的层序遍历结果为 {8, 38, 25, 58, 52, 82, 70, 60}。用线性时间复杂度的算法将该堆调整为最大堆(大根堆),然后连续执行两次删除最大元素操作(DeleteMax)。则该树的中序遍历结果为:
8, 58, 52, 60, 25, 38
-
设最大堆(大根堆)的层序遍历结果为 {98, 72, 86, 60, 65, 12, 23, 50}。用线性时间复杂度的算法将该堆调整为最小堆(小根堆),然后连续执行两次删除最小元素操作(DeleteMin)。则该树的中序遍历结果为: 98, 60, 65, 50, 86, 72
-
堆的形状是一棵: 完全二叉树
-
哪种树,树中任何结点到根结点路径上的各结点值是有序的? 堆
-
设一段文本中包含字符{a, b, c, d, e},其出现频率相应为{3, 2, 5, 1, 1}。则经过哈夫曼编码后,文本所占字节数为 : 25
-
由分别带权为9、2、5、7的四个叶子结点构成一棵哈夫曼树,该树的带权路径长度为: 44
-
已知字符集{ a, b, c, d, e, f, g, h }。若各字符的哈夫曼编码依次是 0100, 10, 0000, 0101, 001, 011, 11, 0001,则编码序列 0100011001001011110101 的译码结果是: afeefgd
-
对 n 个互不相同的符号进行哈夫曼编码。若生成的哈夫曼树共有 115 个结点,则 n 的值是: 58
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)