《数据结构》习题集Word格式.docx
- 文档编号:18898618
- 上传时间:2023-01-02
- 格式:DOCX
- 页数:30
- 大小:65.66KB
《数据结构》习题集Word格式.docx
《《数据结构》习题集Word格式.docx》由会员分享,可在线阅读,更多相关《《数据结构》习题集Word格式.docx(30页珍藏版)》请在冰豆网上搜索。
(c)线性结构和非线性结构;
(d)内部结构和外部结构;
12.若已知一个栈的入栈序列是1,2,3,…,n,其输出序列为p1,p2,p3,…,pn,那么p1=n;
pi为:
(a)i;
(b)n=i;
(c)n-i+1;
(d)不确定;
13.判断一个循环队列QU(最多元素m0)为空的条件是:
(a)QU->
front==QU->
rear;
(b)QU->
front!
=QU->
(c)QU->
front==(QU->
rear+1)%m0;
(d)QU->
front!
=(QU->
14.表达式a*(b+c)-d的后缀表达式是
(a)abcd*+-;
(b)abc+*d-;
(c)abc*+d-;
(d)*-a+bc;
15.在一个单链表中,已知q所指结点是p所指结点的前驱结点,若在q和p之间插入s结点,则执行:
(a)s->
next=p->
next;
p->
next=s;
(b)p->
next=s->
s->
next=p;
(c)q->
next=s;
(d)p->
next=q;
16.在一个链队中,假设f和r分别为队首和队尾指针,则插入s所指结点的运算是:
(a)f->
f=s;
(b)f->
r=s;
(c)s->
next=r;
(d)s->
next=f;
17.将递归算法转换成对应的非递归算法时,通常需要使用
(a)栈(b)队列
(c)链表(d)树
18.树最适合用来表示
(a)有序数据元素(b)无序数据元素
(c)元素之间具有分支层次关系的数据(d)元素之间相关联的数据
19.要求一个线性表既能较快地查找,又能适应动态变化的要求,则可采用的查找方法是:
(a)分块查找(b)顺序查找
(c)二分查找(d)散列查找
20.Anodeinatreethatdoesnothaveanychildreniscalled
(a)aleaf;
(b)aninternalnode;
(c)aroot;
(d)anemptynode;
21.对于一棵深度为2(仅含根结点的二叉树高度为零)的二叉树,它的总节点数:
(a)至多7个(b)至多2个(c)节点数不限(d)至多4个
22.下面的伪码是对二叉树操作算法的片段:
print(node)
{
if(thereisaleftchild)print(leftchild);
printdata;
if(thereisarightchild)print(rightchild);
}
这个算法是:
(a)折半查找;
(b)前序遍历;
(c)中序遍历;
(d)后序遍历;
23.下面哪个序列不是折半查找(二分查找)所访问的数值序列
(a)10,20,30,40,50;
(b)50,40,30,20,10;
(c)10,20,30,15,18;
(d)30,35,40,45,42
24.递归函数可以调用自身多少次?
(a)至多1次;
(b)任意次数;
(c)0次;
(d)至多2次;
25.分析下面函数:
intf(intn)
if(n==0)return0;
if((n&
1)==0)returnf(n/2);
returnf(n/2)+1;
调用函数f(10)的返回值是:
(a)1;
(b)3;
(c)5;
(d)2;
26.假如n,m>
=0,那么下面函数的功能是:
intff(intn,intm)
if(n==0)returnm;
returnff(n-1,m*n);
(a)计算m*(n!
);
(b)计算最大公约数;
(c)计算最小公倍数;
(d)计算(m+n)!
;
27.总的来说,哈希方法(hashing,也称散列方法)的主要问题在于:
(a)哈希函数难以计算;
(b)哈希表的存取速度慢;
(c)会发生冲突;
(d)哈希表占很多内存;
28.对于一个大小为m含有n项的哈希表,它的负载(load)因子是:
(a)m-n;
(b)n+m;
(c)m/n;
(d)n/m;
29.下面对p的声明,那一个是指向整数的指针:
(a)int**p;
(b)intp[];
(c)int&
p;
(d)int*p;
30.假设Thing是一个用户定义的类,B是Thing的一个实例,对于下面的代码段
ThingA=B
用到了类Thing中的哪一个成分:
(a)赋值操作符;
(b)析构函数;
(c)构造函数;
(d)复制构造函数;
31.下面对类的部分描述用于说明一种用户定义的实数实现:
classRealNumber{
...
RealNumber(floatx);
RealNumber(floatx,floaty=0);
};
这段代码可能错在哪里?
(a)在构造函数中不允许时有缺省值;
(b)没有错误;
(c)第二个构造函数与第一个不一致;
(d)用两个实数参数无法创建一个实数;
32.面向对象的程序设计最适合下面哪一种开发要求:
(a)程序是一个完整的程序模块;
(b)提供完善的代码复用;
(c)获得高效率;
(d)对封装的需求;
33.对于有n个节点e条边的图,如果用邻接表表示,则计算全部入度的时间复杂度是:
(a)O(n+e);
(b)O(n^2);
(c)O(n^3);
(d)O(n*e);
34.结定结点的关键字序列(F、B、J、G、E、A、I、D、C、H),对它按字母的字典顺序进行排列,快速排序的第一趟结果是:
(a)(C、B、D、A、F、E、I、J、G、H)(b)(C、B、D、A、E、F、I、G、J、H)
(c)(B、A、D、E、F、G、I、J、H、C)(d)(B、C、D、A、E、F、I、J、G、H)
35.计算机算法是指
(a)数值计算方法(b)对抽象数据结构的操作方法
(c)非数值计算方法(d)解决问题的有限运算序列
36、对于顺序存储的队列,存储空间大小为n,头指针为F,尾指针为R。
若在逻辑上看一个环,则队列中元素的个数为......................()
(a)R-F(b).n+R-F(c).(R-F+1)modn(d).(n+R-F)modn
37、链表不具备的特点是()。
A.可随机访问任何一个元素B.插入、删除操作不需要移动元素
C.无需事先估计存储空间大小D.所需存储空间与线性表长度成正比
38、对矩阵压缩存储的主要目的是()。
A.方便运算B.节省存储空间C.降低计算复杂度D.提高运算速度
39、判断“链式队列为空”的条件是()(front为头指针,rear为尾指针)。
A.front==NULLB.rear==NULL
C.front==rearD.front!
=rear
40、关于字符串的判定语句中正确的是()。
A.字符串是一种特殊的线性表B串的长度必须大于零
C.字符串不属于线性表的一种C空格字符组成的串就是空串
41、有100个结点的树中,其边的数目为()。
A.101B.100C.99D.98
42、在程序的执行过程中,用()结构可实现嵌套调用函数的正确返回。
A.队列B.栈C.树D.图
43、已知递归函数f(n)的功能是计算1+2+…+n,且n≥1,应采用的代码段是()。
A.ifn=lthenreturn1elsereturnn+f(n-1)B.ifn=lthenreturn1elsereturnn+f(n+1)
C.ifn=lthenreturn0elsereturnn+f(n-1)D.ifn=lthenreturn0elsereturnn+f(n+1)
44、将一个三对角矩阵A[l..100,1..100]中的元素按行存储在一维数组B[l..298]中,矩阵A中的元素A[66,65]在数组B中的下标为()。
A.195B.196C.197D.198
45、给定一个有n个元素的线性表。
若采用顺序存储结构,则在等概率前提下,向其插入一
个元素需要移动的元素个数平均为()。
A.n+lB.n/2C.(n+l)/2D.n
46、()是线性结构的数据结构。
A.广义表B.高维数组C.双端队列D.二叉树
47、结论“()”是正确的。
A.二叉树的度为2B.树中结点的度可以小于2
C.二叉树中至少有一个结点的度为2D.二叉树中任何一个结点的度都为2
48、某线性表最常用的运算是插入和删除,插入运算是指在表尾插入一个新元素。
删除运
算是指删除表头第一个元素,那么采用()存储方式最节省运算时间。
A.仅有尾指针的单向循环链表B.仅有头指针的单向循环链表
C.单向链表D.双向链表
49、表达式采用逆波兰式表示时可以不用括号,而且可以用基于
(1)的求值过程进行
计算。
与逆波兰式ab+cd+*对应的中缀表达式是
(2)。
(1)A.栈B.队列C.符号表D.散列表
(2)A.a+b+c*dB.(a+b)*c+dC.(a+b)*(c+d)D.a+b*c+d
50、设数组a[3..16,5..20]的元素以列为主序存放,每个元素占用两个存储单元,则数组
元素a[i,j](3≤i≤16,5≤j≤20)的地址计算公式为()。
A.a-118+2i+28jB.a-116+2i+28jC.a-144+2i+28jD.a-146+2i+28j
51.一个栈的输入序列为1,2,3,4,下面哪一个序列不可能是这个栈的输出序列?
()
A.1,3,2,4B.2,3,4,1C.4,3,1,2D.3,4,2,1
52.下列排序方法中,哪一种方法的比较次数与纪录的初始排列状态无关?
A.直接插入排序B.起泡排序C.快速排序D.直接选择排序
53.对n个记录的文件进行二路归并排序,总的时间代价为
A.O(nlog2n)B.O(n2)C.O(log2n)D.O(n)
54.若一棵二叉树具有10个度为2的结点,则该二叉树的度为0的结点个数是()
A.9B.11C.12D.不确定
55.下面关于B树和B+树的叙述中,不正确的是
A.B树和B+树都是平衡的多分树B.B树和B+树都是可用于文件的索引结构
C.B树和B+树都能有效地支持顺序检索D.B树和B+树都能有效地支持随机检索
56.在一棵m阶B树中,若在某结点中插入一个新关键字而引起该结点分裂,则此结点中原有的关键字的个数是。
A.mB.m1C.m—lD.m/2
57.如果具有n个顶点的图是一个环,则它有()棵生成树。
A.nB.n+lC.n-lD.2n
58.一棵前序序列为1,2,3,4的二叉树,其中序序列不可能是。
A.4,1,2,3B.4,3,2,1C.2,4,3,1D.3,4,2,1
59.具有n个顶点和e条边的图的深度优先搜索算法的时间复杂度为
A.O(n)B.O(n3)C.O(n2)D.O(n*e)
60堆排序算法在平均情况下的时间复杂度为
A.O(n)B.O(nlogn)C.O(n2)D.O(logn)
61.在待排序数据已基本有序的前提下,下述排序方法中效率最高的是
A.直接插入排序B.直接选择排序C.快速排序D.归并排序
62.在理想情况下,散列表中查找元素所需的比较次数为。
A.nB.OC.n/2D.1
63.在《数据结构》中数据项是有意义的数据的( )单位。
A.基本 B.最小 C.最大 D.特殊
64.在一个以h为头指针的双向循环链表中,指针p所指的元素是尾元素的条件是()。
A.p==hB.h->
rlink==pC.p->
llink==hD.p->
rlink==h
65.假设循环队列的最大容量为m的,队尾指针是rear,队头指针是front,则队列为满的条件是()。
A.(rear+1)%m==frontB.rear==front
C.rear+1==frontD.(rear-l)%m==front
66.深度为d(d≥1)的完全二叉树至少有()个结点。
A.2d-1+1B.2d-1C.2d-1D.2d-1-1
67.在单链表指针为p的结点之后插入指针为s的结点,正确的操作是()。
A.p->
next=s;
s->
next=p->
B.s->
p->
C.p->
next=s->
D.p->
68.对一个表长为12的有序顺序表进行二分查找,假定对表中每个记录的查找概率相等,则查找成功的平均查找长度为()。
A.4B.3.1C.2.8D.1.2
69.A[n,n]是对称矩阵,将下三角(包括对角线)以行序存储到一维数组T[n(n+1)/2]中,则对任一上三角元素a[i][j]对应T[k]的下标k是()。
A.i(i-1)/2+jB.j(j-1)/2+iC.i(i-1)/2+j-1D.j(j-1)/2+i-1
70.一个有两个以上结点的二叉树的前序遍历序列与中序遍历序列正好相反,则该二叉树()。
A.任一结点没有左子树B.任一结点没有右子树
C.任一结点不能同时有左子树和右子树D.不存在
71.计算机算法是指
A.数值计算方法B.对抽象数据结构的操作方法
C.非数值计算方法D.解决问题的有限运算序列
72.串的长度是()。
A.串中不同字符的个数B.串中不同字母的个数
C.串中所含字符的个数且字符个数大于0D.串中所含字符的个数
73.将递归算法转换成对应的非递归算法时,通常需要使用( )。
A.栈B.对列 C.链表D.树
74.判断一个循环队列QU(最多元素m0)为空的条件是( )。
A.QU->
rearB.QU->
rear
C.QU->
rear+1)%m0D.QU->
rear+1)%m0
75.将一个对称矩阵A[l..50,1..50]中的元素按行压缩存储在一维数组B中,数组B的元素总个数为()。
A.2500B.1275C.1225D.1500
76.在具有100个结点的树中,其边的数目为( )。
A.101 B.100 C.99 D.98
77.在一个链队中,假设f和r分别为队首和队尾指针,则插入s所指结点的运算是:
A.f->
B.f->
C.s->
D.s->
78.某线性表最常用的运算是插入和删除,插入运算是指在表尾插入一个新元素。
删除运算是指删除表头第一个元素,那么采用()存储方式最节省运算时间。
A.仅有尾指针的单向循环链表B.仅有头指针的单向循环链表
C.单向链表D.双向链表
79.如果T2是由有序树T转换而来的二叉树,那么T中结点的前序就是T2中结点的( )。
A.前序 B.中序 C.后序 D.层中序
80.下面关于B树和B+树的叙述中,不正确的是( )。
A.B树和B+树都是平衡的多分树 B.B树和B+树都是可用于文件的索引结构
C.B树和B+树都能有效地支持顺序检索D.B树和B+树都能有效地支持随机检索
81.当序列中的记录基本有序或n值较小时,最佳的排序方法()。
A.交换排序B.堆排序C.插入排序D.基数排序
82.深度为5的二叉树至多有个结点( )。
A.16 B.32 C.31 D.10
83.在一个单链表中,已知q所指结点是p所指结点的前驱结点,若在q和p之间插入s结点,则执行()。
A.s->
next=s B.p->
next=p
C.q->
next=p D.p->
next=q
84.在单向链表的第i个结点前插入新结点时,需预先保留的结点指针是()。
A.指向i结点的指针 B.指向i结点的前趋结点的指针
C.指向i结点的后继结点的指针 D.无需保留
85.在《数据结构》中为了叙述的方便和避免产生混淆,通常把数据的物理结构统称为( )。
A.存储结构 B.逻辑结构 C.线性结构 D.非线性结构
86.下列属于随机存取结构的是( )。
A.线性链表 B.顺序表 C.循环链表 D.双向链表
87.下面程序段的时间复杂度为()。
for(i=0;
i<
=n;
++i)
for(j=0;
j<
=m;
++j){++x;
a[i,j]=x+j}
A.O(n2)B.O(m*n)C.O(m2)D.O(m+n)
88.判断“链式队列为空”的条件是()(front为头指针,rear为尾指针)。
A.front==NULL
B.rear==NULL
C.front==rear
D.front!
=rear
89.以下关于字符串的判定语句中正确的是()。
A.字符串是一种特殊的线性表
B.串的长度必须大于零
C.字符串不属于线性表的一种
D.空格字符组成的串就是空串
90.由n(>
1)个结点构成的完全二叉树,其深度为()。
A.Log2n+1B.Log2n-1C.log2n+1D.Log2n-1
91.
对于一棵深度为2的二叉树,它的总结点数:
A至多7个B.至多2个C.结点数不限D.至多4个
92.有n个结点的完全二叉树,其最后一个非终端节点为()。
A.n/2B.n/2C.2nD.㏒2n
93.对于有n个结点e条边的图,如果用邻接表表示,则计算全部结点入度的时间复杂度是:
A.O(n+e)B.O(n2)C.O(n3)D.O(n*e)
94.下面哪个序列不是折半查找(二分查找)所访问的数值序列()
A.10,20,30,40,50B.50,40,30,20,10
C.13,26,30,45,68D.30,50,40,45,42
95.给定结点的关键字序列(F、B、J、G、E、A、I、D、C、H),对它按字母的字典顺序进行排列(选F为枢轴),快速排序的第一趟结果是()
A.(C、B、D、A、F、E、I、J、G、H)B.(C、B、D、A、E、F、I、G、J、H)
C.(B、A、D、E、F、G、I、J、H、C)D.(B、C、D、A、E、F、I、J、G、H)
96.总的来说,散列方法(hashing,也称哈希方法)的主要问题在于()
A.哈希函数难以计算B.哈希表的存取速度慢
C.会发生冲突D.哈希表占很多内存
97.堆是一种特殊的数据结构,下面哪一个是堆()
A.19,75,34,26,97,56B.97,26,34,75,19,56
C.19,56,26,97,34,75
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 习题集