西北民族大学数据结构题库.docx
- 文档编号:10112977
- 上传时间:2023-02-08
- 格式:DOCX
- 页数:18
- 大小:28.37KB
西北民族大学数据结构题库.docx
《西北民族大学数据结构题库.docx》由会员分享,可在线阅读,更多相关《西北民族大学数据结构题库.docx(18页珍藏版)》请在冰豆网上搜索。
西北民族大学数据结构题库
选择题
1.在数据结构中,逻辑上可以把数据结构分为()
A.动态结构和静态结构
B.紧凑结构和非紧凑结构
C.线性结构和非线性结构
D.内部结构和外部结构
2.在一个单链表中,若删除p所指结点的后继结点,则执行()。
A.p->next=p->next->next
B.p=p->next,p->next=p->next->next
C.p->next=p->next
D.p=p->next->next
3.设高度为15的二叉树上只有度为0和1的结点,则此类二叉树中所包含的结点数至少为()。
A.30
B.31
C.29
D.15
4.已知二叉树中有两个孩子的结点数为18,仅有一个孩子的结点数为30,则总节点数为()。
A.48
B.65
C.67
D.77
5.无向图G=(V,E),其中:
V={(a,b),(a,e),(a,c),(b,e),(e,f),(f,d),(e,d)},在下面的5个序列中,符合深度优先遍历的序列有多少?
()
(1)aebdfc
(2)acfdeb(3)aedfcb(4)aefdcb(5)aefdbc
A.5个
B.4个
C.3个
D.2个
6.有一个有序表{1,3,5,7,8,10,15,17,19,30,41,50,70},当二分查找值为19的结点时,()次比较后查找成功。
A.2
B.3
C.4
D.9
7.下列不是算法的特性的是()。
A.有穷性B.确定性
C.可能性D.输入和输出特性
8.线性表若采用链式结构时,要求内存中可用存储单元的地址()。
A.一定是不连续的B.连续不连续都可以
C.必须是连续的D.部分地址必须是连续的
9.在一个单链表中,若删除p所指结点的后续结点,则执行()。
A.p->next=p->next-next;
B.p=p->next;p->next=p->next->next;
C.p->next=p->next;
D.p=p->next->next
10.一个栈的入栈序列是a,b,c,d,e,则栈的不可能输出序列是()。
A.dceabB.abcdeC.edcbaD.decba
11.限定线性表有()。
A.栈B.队列C.树D.A和B
12.进行入队运算时,必须先判断队列是否()。
A.空B.满C.下溢D.上溢
13.进行出栈运算时,必须先判断栈是否()。
A.空B.满C.下溢D.上溢
14.判定一个栈ST(栈的存储空间大小为M)为空的条件是()。
A.ST->top!
=0B.ST->top==0
C.ST->top!
=MD.ST->top==M
15.递归函数f(n)=f(n-1)+n(n>1)的递归体是()。
A.f
(1)=0B.f(0)=1
C.f(n)=f(n-1)+nD.f(n)=n
16.串是一种特殊的线性表,其特殊性体现在()。
A.数据元素是一个字符B.数据元素可以是多个字符
C.可以顺序存储D.可以链式存储
17.若串S=”software”,则其子串的数目是()。
A.8B.7C.6D.9
18.两个字符串相等的充分必要条件是()。
A、两个串的长度相等 B、两个串包含的字符相等
C、两个串的长度相等,并且两个串包含的字符相等。
D、两个串的长度相等,并且对应位置上的字符相等。
19.已知广义表L=(a,(b,c)),其表头是()。
A.aB.bC.(a,b)D.(c,d)
20.广义表((a,b),c,d)的表尾是()。
A.aB.bC.(a,b)D.(c,d)
21.树最适合用来表示()。
A、有序数据元素 B、无序数据元素
C、元素之间具有分支层次关系的数据
D、元素之间无联系的数据
22.在树型结构中,每一个结点都可以有()个孩子结点。
A.2B.1C.0D.任意多
23.关键路径是时间节点网络中()。
A.从源点到汇点的最长路径B.从源点到汇点的最短路径
C.最长回路D.最短回路
24.设高度为15的二叉树上只有度为0和1的结点,则此类二叉树中所包含的结点数至少为()。
E.30
F.31
G.29
H.15
25.已知二叉树中有两个孩子的结点数为18,仅有一个孩子的结点数为30,则总节点数为()。
E.48
F.65
G.67
H.77
填空题
1.数据结构包括()三个方面。
(用英文逗号分隔,即**结构,**结构,**结构,注意按次序填写)逻辑结构,存储结构,预算结构或逻辑结构,存储结构,操作结构
2.数据结构被形式地定义为一个二元组DS=(D,S)其中D是
(1)的有限集合,S是D上关系的有限集合。
数据元素
3.当线性表的元素综述总数基本稳定,且很少进行插入和删除操作,但要求以最快的速度存取线性表中的元素时,应该采用()存储结构
4.对于双向链表,删除一个存在的结点需修改的指针为()个。
2
5.()是限定仅在表尾进行插入或删除操作的线性表。
栈
6.设有一个栈,栈顶指针为1000H(十六进制),现有输入序列为1,2,3,4,5经过PUSH,PUSH,POP,PUSH,POP,PUSH,PUSH之后,栈顶指针是()H。
设栈为顺序栈,每个元素占4个字节。
100C
7.设串s1=”ABCDEFG”,s2=”PQRST”,则Strcat(substr(s1,2,strlen(s2)),substr(s1,strlen(s2),2)
结果是()。
BCDEFEF
8.空格串是指由()字符所组成的字符串。
空格
9.二维数组M[i][j]的每个元素占4个存储单元,行下表i的范围从0到4,列下表j的范围从0到6,M按列存储时M[1][5]元素的起始地址与M按行存储时元素()的起始地址相同。
M[3][5]
10.将整型数组A[1~8]1~8]按行优先次序存储在起始地址为1000的连续的内存单元中,则元素A[7][3]的地址是()1100
11.已知完全二叉树的第6层有32个叶子节点,则整个二叉树的节点数最少是()63
12.已知完全二叉树的第7层有14个叶子结点,则整个二叉树的结点数最多时()。
227
13.二叉树的第10层至多有()个结点。
512
14.深度为4的二叉树至多有()个结点。
15
15.将一棵有50个结点的完全二叉树从根这一层开始,每一层上从左到右依次对结点进行编号,根结点的编号为1,则编号
16.二叉树的第9层至多有()个节点。
256
17.深度为7的二叉树至多有()个结点。
127
18.将一棵有81个结点的完全二叉树从跟这一层开始,每一层从左到右以此对结点进行编号,根结点的编号为1,则编号为66的结点的双亲编号为()33
19.设广义表L=(a,(a,b),d,e((i,j),k)),则L的深度是()3
20.是对客观事物的符号表示,能被计算机处理的符号总称。
21.数据的存储结构通常包括数据的_________存储和_________存储。
22.数据的逻辑结构可形式地用一个二元组S=(D,R)来表示,其中D是__________,R是__________。
23.所有插入和删除都在表的一端进行的线性表称为。
24.插入和删除分别在表的两端进行的线性表称为。
25.栈是一种受限的线性表。
26.当栈中元素为n个,作进栈运算时发生上溢,则说明该栈的最大容量为,设元素占1个空间容量。
27.串的两种基本存储方式是和。
28.串S=”hello”的长度是___________。
29.串S=”worker”的子串数目是___________。
30.空串是指数据元素个数为_________的串。
31.已知数组A[0~9][0~9]的每个元素占5个存储单元,将其按行存储在起始地址为1000的连续的内存单元中,则元素A[6][8]的地址为
32.广义表(a,(a,b),d,e,((i,j),k))的长度是
33.设广义表L=((((a)))),则L的长度为_________,深度为.
34.设广义表L=(a,(a,b),d,e,((i,(j)),k)),则L的深度是,表头为,表尾是。
35.空格串是指由__________符所组成的字符串。
36.数据结构包括_________三个方面。
37.当线性表的元素总数基本稳定,且很少进行插入和删除操作,但要求以最快的速度存取线性表中的元素时,应该采用__________存储结构
38.对于双向链表,删除一个存在的结点需修改的指针为__________个。
2
39.__________是限定仅在表尾进行插入或删除操作的线性表。
判断题
1.线性表采用链表存储时,结点和结点内部的存储空间可以是不连续的。
2.链表是采用链式存储结构的线性表,进行插入、删除操作时,在链表中比在顺序存储结构中效率高。
3.队列是一种插入与删除操作分别在表的两段进行的线性表,是一种先进后出型结构。
4.队列逻辑上是一个上端和下端既能增加又能减少的线性表。
5.如果两个含有相同的字符,则说他们相等。
6.空串与空格串是相同的。
7.所谓取广义表的表尾就是返回广义表中最后一个元素。
8.由于二叉树中每个结点的度最大为2,所以二叉树就是一种特殊的树。
9.二叉树中的叶子结点就是二叉树中没有左右子树的结点,除了根结点外。
10.二叉树的中序遍历中,任意一个结点均处在其子女结点的后面。
11.森林的先序遍历次序与其转换得到的二叉树的中序遍历次序相同。
12.已知一个森林的先序遍历和中序遍历,一定能构造出该森林。
A
13.有向图用邻接矩阵表示后,顶点i的出度等于第i行中非0且非∞的元素个数。
14.在一个有向图中,所有顶点的入度之和等于出度之和。
15.所谓平衡二叉树是指左、右子树的深度差的绝对值不大于1的二叉排序树。
且左、右子树均为平衡二叉树。
16.所谓平衡二叉树是指左右子树的高度差的绝对值不大于1的二叉排序树。
B
17.数据结构包括数据的逻辑结构和存储结构。
18.程序一定是算法。
19.线性表采用链表存储时,结点和结点内部的存储空间可以是不连续的。
20.链表是采用链式存储结构的线性表,进行插入、删除操作时,在链表中比在顺序存储结构中效率高。
21.队列是一种插入与删除操作分别在表的两段进行的线性表,是一种先进后出型结构。
22.顺序表中逻辑上相邻的元素,物理上一定邻接。
23.顺序表中所有结点的类型必须相同。
24.由于不需预先分配空间,线性链表的结点结构可以不相同。
25.队列是一种先进后出的线性结构。
26.队列逻辑上是一个下端和上端既能增加又能减少的线性表。
27.栈是一种先进后出的线性结构。
28.循环队列通常用指针来实现队列的首尾相接。
29.串是一种数据对象和操作都特殊的线性表。
30.矩阵压缩存储的目的是为了节省运算时间。
31.广义表的节点元素的类型必须相同。
32.广义表是线性表的一种扩展。
33.一个广义表的表尾总是一个广义表。
34.如果两个含有相同的字符,则说他们相等。
35.空串与空格串是相同的。
36.所谓取广义表的表尾就是返回广义表中最后一个元素。
应用题
1.设有一个栈,元素进栈的次序为:
A,B,C,D,E,用I表示进栈操作,O表示出栈操作,写出下列出栈的操作序列。
2.
(1)C,B,A,D,E
3.
(2)A,C,B,E,D
参考答案:
:
(1)IIIOOOIOIO
(2)IOIIOOIIOO
4.在双链表中,删除指针变量p所指结点,请按顺序写出必要的操作步骤。
参考答案:
①p->front->rear=p->rear;
②p->rear->front=p->front;
5.在双向链表中,要在指针变量q所指结点之后插入一个新结点p,请按顺序写出必要的算法步骤。
6. (设:
P所指结点不是链表的首尾结点,q是与p同类型的指针变量)
参考答案:
①p->front=q;
②p->rear=q->rear;
③q->rear->front=p;
③q->rear=p;
7.求后缀表达式。
8.
(1)A^B^C/D
9.
(2)-A+B*C+D/E
10.(3)A*(B+C)*D-E
11.(4)(A+B)*C-E/(F+G/H)-D
12.(5)8/(5+2)-6
参考答案:
(1)AB^C^D/
(2)A–BC*+DE/+
(3)ABC+*D*E-
(4)AB+C*EFGH/+/-D-
(5)852+/6-
13.一棵二叉树的先序、中序和后序序列分别如下,其中有一部分未显示出来,填空构造该二叉树。
(注意用大写字符按位置填写,不要加其他符号)
先序:
A
(1)CD
(2)F(3)HZ(4)K
中序:
(5)BEDFA(6)JKZG
后序:
C(7)F(8)B(9)JZHG(10)
BEGJCHEDKA
14.根据下图所示,分别求二叉树的先序遍历次序
(1),中序遍历次序
(2),后序遍历次序(3)。
(注意次序结点间不要加空格或标点符号,例ABCDE即可)
参考答案:
先序:
ABDCGKHTY中序:
BCGDAHYTK后序:
GCDBYTHKA
15.某通信系统中只可能有A、B、C、D、E、F、G、H、K9种字符,其出现的概率分别为0.03,0.06,0.04,0.05,0.1,0.18,0.22,0.12,0.2,试为这9个字符设置哈夫曼编码,按下表对应序号填空,并计算出带权路径长度WPL=(10)(注意构造哈夫曼树时要求左小右大,前小后大,编码时用左0右1编码)
字符
A
B
C
D
E
F
G
H
K
频率
0.03
0.06
0.04
0.05
0.1
0.18
0.22
0.12
0.2
编码
11000100111001100011011110110100
WPL=2.93
16.通信电文由A、B、C、D、E、F、G、H、K9种字符组成,其出现的概率如下表所示,试为这9个字符设置哈夫曼编码,按下表对应序号填空,并计算出带权路径长度WPL=(10)(注意构造哈夫曼树时要求左小右大,前小后大,编码时用左0右1编码)
字符
A
B
C
D
E
F
G
H
K
频率
4
31
11
6
12
23
1
5
7
编码
00011110011010100010001000001011
WPL=274
17.求下图顶点1到其余顶点的最短路径,按要求填表。
(注意用顶点大写字母V+序号表示,路径用顶点序列构成,如填写V1V3V5等即可,不用分隔。
其他填写方式均不得分)
源点
终点
路径
最小值
V1
V2
V1
V3
V1
V4
V1
V5
V1
V6
V1
V7
V1
V8
V1
V9
V1
V10
18.求下图顶点1到其余顶点的最短路径,按要求填表。
(注意用顶点大写字母V+序号表示,路径用顶点序列构成,如填写V1V3V5等即可,不用分隔。
其他填写方式均不得分)
源点
终点
路径
最小值
V1
V2
V1
V3
V1
V4
V1
V5
V1
V6
V1
V7
V1
V8
V1
V9
V1
V10
19.已知图的邻接表存储结构如下图,试求从1顶点出发求深度优先遍历次序()及深度优先遍历生成树()和广度优先遍历次序()以及广度优先遍历生成树()。
1
2
3
4
5
(注意次序用顶点序号表示,用英文逗号分隔,如填写1,2,3,4,5即可。
生成树用序偶表示,如填写<1,5><2,3><3,6>等。
次序必须按遍历生成次序依次填写。
其它填写方式均不得分)
20.已知图的邻接表存储结构如下图,试求从顶点1出发求深度优先遍历次序()及深度优先遍历生成树()和广度优先遍历次序()及广度优先遍历生成树()
(注意次序用顶点序号表示,用英文逗号隔开,如填写1,2,3,4,5即可。
生成树用序偶表示,如填写<1,5><2,3><3,6>等。
次序必须按照遍历生成次序依次填写。
其它填写方式均不得分)
21.用迪杰斯特拉算法求下图顶点1到其余各顶点的最短路径,按要求填表。
(注意用顶点大写字母V+序号表示,路径用顶点序列构成,如填写V1V3V5等即可,不用分割。
其它填写方式均不得分)
源点
终点
路径
最小值
V1
V2
V1
V3
V1
V4
V1
V5
V1
V6
V1
V7
V1
V8
V1
V9
V1
V10
算法填空
1.下面程序是把两个串s1和s2首尾相连的程序,即:
r1=r1+r2
typedefstruct
{
charvec[MAXLEN];//定义合并后串的最大长度
intlen;//len为串的长度
}Str;
voidConCatStr(Str*r1,Str*r2)//字符串连接函数
{
inti;
cout< if(r1->len+r2->len__ (1)__) cout<<"两个串太长,溢出! "; else { for(i=0;i<__ (2)_;i++)//把r2连接到r1 r1->vec[___(3)__]=r2->vec[i]; r1->vec[r1->len+i]=(4);//添上字符串结束标志 r1->len=[__(5)];//修改新串长度 } } MAXLEN,r2->len,r1->len+i,'\0',r1->len+r2->len 2.下列算法的功能是递归方法实现快速排序。 voidQuick_Sort(DataTypeR[],ints,intt) { //对顺序表R[s]~R[t]作快速排序 if(__ (1)__) { i=Partition(R,s,t); //算法Partition(R,s,t)功能为将表R[s]~R[t]一分为二,返回值为分界点 Quick_Sort(R,s,___ (2)___); Quick_Sort(R,i+1,___(3)___); } } voidQuick(DataTypeR[],intn) { Quick_Sort(R,1,n); } (1)s (2)i-1(3)t 1.下面程序是把两个串r1和r2首尾相连的程序,即: r1=r1+r2,阅读程序并填空。 typedefstruct {charvec[MAXLEN];//定义串的最大长度 intlen;//len为串的长度 }Str; voidConCatStr(Str*r1,Str*r2)//字符串连接函数 { inti; if(r1->len+r2->len__ (1)__) cout<<"两个串太长,溢出! "; else { for(i=0;i<__ (2)_;i++)//把r2连接到r1 r1->vec[___(3)__]=r2->vec[i]; r1->vec[r1->len+i]=(4);//添上字符串结束标志 r1->len=[__(5)];//修改新串长度 } 2.已知线性表中的元素是无序的,并以带表头结点的单链表作存储。 试写一算法,删除表中所有大于min,小于max的元素,试完成下列程序填空。 Voiddelete(LinkListhead;datatypemin,max) { LinkListp,q; p=head->next; q=head; while(p! =NULL) {if((p->data<=min)||(________)p->data>=max {q=p;p=______;} else {q->next=_______;p->next _________;deletep p=_________;p=q->next } } } 3.假定用一个循环单链表表示一个循环队列,该队列只设一个队尾指针rear,试填空完成向循环队列中插入一个元素为x的结点的函数。 typedefstructqueuenode {intdata; structqueuenode*next; }qu; InQueue(rear,x) {qu*rear;intx;qu*head,*s; s=_______;s->data=__________; if(rear==NULL) {rear=s;rear->next;} else {head=___________; rear->next=_________; rear=s; __________=head; } } 4.设x和y两个串均采用顺序存储方式,下面的程序是比较x和y两个串是否相等的函数,试完成程序填空。 #defineMAXLEN100 typedefstruct {charvec[MAXLEN];len; }str; intsame(x,y) str*x,*y; { inti=0,tag=1; if(x->len_________y->len)return(0);//(或<>) else { while(i {if(x->vec[i]__________y->vec[i])tag=0; _________;} return(tag); } }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 西北 民族大学 数据结构 题库