数据结构考试试题.docx
- 文档编号:4977608
- 上传时间:2022-12-12
- 格式:DOCX
- 页数:19
- 大小:107.90KB
数据结构考试试题.docx
《数据结构考试试题.docx》由会员分享,可在线阅读,更多相关《数据结构考试试题.docx(19页珍藏版)》请在冰豆网上搜索。
数据结构考试试题
数据结构辅导试题一
一%简答问题:
1.四类数据结构
2.线性结构与非线性结构有何不同?
3.简述算法的概念与特性。
4.设有1000个无序元素,仅要求找出前10个最小元素,在以下排序方式中(归并排序.基数排序、快速排序.堆排序、插入排序)哪一种方式最好,什么缘故?
二、判定正误:
(每题1分,共5分)正确在()内JTV,不然打Xo
1.()二叉排序树或是一棵空树,或是具有以下性质的二叉树:
假设它的左子树非空,那么根结点的值大于其左小孩的值,
假设它的右子树非空,那么根结点的值大于其右小孩的值。
2.()索引顺序表的特点是块内可无序,块间要有序。
3.()子串是主串中任意个持续字符组成的序列。
4.()线性结构只能用顺序结构寄存,非线性结构只能用链表寄存。
5.()快速排序的枢轴元素能够任意选定。
3.单项选择题:
(每题1分.共4分)
1.栈S最多能容纳4个元素。
现有6个元素按A、B.C、D.E.F的顺序进栈,问以下哪个序列是可能的出栈序列?
A)ExD、C、B、A、FB)B、C.E、F、A.D
C)C、B、E.D.A.FD)A、D、F、E.B.C
2.将一棵有100个结点的完全二叉树从根这一层开始,每一层从左到右依次对结点进行编号,根结点编号为1,那么编号为49的结点的左小孩的编号为:
A.9899C、50D.48
3.对以下关键字序列用快速排序法进行排序时,速度最快的情形是:
A){21.25、5.17.9、23、30}B){25、23、30、17.21.5.9}
B){21、9.17、30.25、23、5}D){5、9、17、21、23、25.30}
4.设丛林F中有三棵树,第一.第二和第三棵树的结点个数别离为Ml、M2和M3。
与丛林F对应的二叉树根结点的右子树上的结点个数是:
A)MlB)M1+M2C)M3D)M2+M3
4.填空题:
(每题2分•共20分)
1.设一哈希表表长M为10(),用除留余数法构造哈希函数,即H(K)=KMODP(P<=M),为使函数具有
较好性能,P应选
2.N个结点的二叉树采纳二叉链表寄存,共有空链域个数为
3.单链表与多重链表的区别是
4.在各类査找方式中,平均査找长度与结点个数无关的是
5.深度为6(根层次为1)的二叉树最多有个结点。
6・已知二维数组A[20][10]采纳行序为主方式存储,每一个元素占2个存储单元,而且A[10]⑸的存储地址是10()0,那么A[18][9]的存储地址是
7.在一个单链表中p所指结点以后插入s所指结点时,应执行
s->next=和p->next=的操作.
&广义表((比b),c,d)的表头是炭尾是
9.循环单链表LA中,指针P所指结点为表尾结点的条件是
10.在一个待排序的序列中,只有很少量元素不在自己最终的正确位置上,但离他们的正确位置都不远,那么
利用排序方式最好。
五、构造题:
(每题5分,共25分)
1.已知一棵二叉树,其中序序列DBCAFGE,后序序列DCBGFEA,构造该二叉树。
2.设哈希表长度为11,哈希函数H(K)=(K的第一字母在字母表中的序号)MOD11
假设输入顺序为(D,BA,TN,M,CI,I,K,X,TA)t处置冲突方式为线性探测再散列或链地址法,要求构造哈希表,并求出等概率情形下査找成功平均査找长度。
3.有一组关键字{50,52,85,22,96,17,36,55},请用快速排序,写出第一趙排序结
4.占知叶子结点值2,3,5,6,9,11,构造哈夫曼树,计算其带权途径长度。
5.画出8个结点的折半判定树。
六、算法设计题:
(每题15分,共30分)(仅要求给出子程序)
1-编写算法,判定带头结点的双向循环链表L是不是对称。
(15分)
对称是指:
设各元素值al,a2v..,an,那么有ai=an-i+l,
即指:
al=an,a2=an-1
结点结构为:
prior
data
next
2.二叉排序树T用二叉链表表示,其中各元素均不相同。
(1)写出递归算法,按递减顺序打印各元素的值。
(10分)
(2)写出完成上述要求的非递归算法。
(5分)
《数据结构》试卷参考答案
一、简答问题:
(每题4分,共16分)
1.集合结构、线性结构、树形结构、网状结构
2.线性结构的前驱与后继之间为一对一关系,非线性结构的前驱与后继之间一样为一对多或多对多关系。
3.解决特定问题的有限指令序列。
有限性.确信性.可行性、有0个或多个输入数据、有1个或多个输出结果。
4.堆排序。
因为一趟堆排序排定一个元索,只需进行前1()趟堆排序就能够够了。
其它排序方式均需进行完全排序°
二、判定正误:
(每题1分.共5分)
正确在()内打不然打o
1.()2.(V)3.(V)4.()5.(V)
3.单项选择题:
(每题1分,共4分)
1.C)2・A)3.A)4.D)
4.填空题:
海题2分,共20分)
1.972.11+13.链域数量不同
4.哈希査找法5.26-16.1168
7.p->next、s8.(a,b)、(c,d)
9.P->next==LA10.直接插入
五、构造题:
(每题5分,共25分)
2.
0
1
2
3
4
5
6
7
8
9
10
K
TA
BA
M
D
CI
X
TN
I
ASL=20/9
0
1
2
3
4
5
6
7
8
9
10
0
1
2
3
4
5
6
7
8
9
10
1
1
,
1
,
■
BA
CI
D
TN
MI
XTA
ASL=15/9
3.
{36,17,22,50,96,85,52,55}
WPL=11X2+6X2+9X2+5X3+2X4+3X4=87
[注]:
哈夫曼树的左右子树能够互换。
5.
OOO
CD
[注]:
若是求中点时采纳向上取整,那么二叉树的形态为左子树偏长。
六、算法设计题:
(每题15分,共30分)(仅要求给出子程序)
1•[解答]:
intjudge(DLinkListL){
p=L->next;q=L->prior;
while(p!
=q)
{if(p->data!
=q->data)return0;if(p->next==q)return1;p=p->next;q=q->prior;
}
return1;
}
[注]:
能够不用返回值,而用打卬信息。
2.[解答h
(1)
voidprint_l(BiTreeT){
if(T!
=NULL)
{print_l(T->RChild);
printf(“%c",T->data);
print_l(T->LChild);
voidPrint_2(BiTreeT)
{InitStack(&S);
P=T;while(p!
=NULLII!
IsEmpty(S)){while(p!
=NULL)
{Push(&S,p);
p=p->RChild;
}
if(!
IsEmpty(S))
{Pop(&S,&p);
printf(“%c",p->data);p=p・>LChild;
数据结构辅导试题二
一、简答题:
(每题3分,共15分)
1.什么情形下二叉排序树的査找性能较好?
什么情形下二叉排序树的査找性能最差?
2.比较顺序表与单链表的优缺点。
3.请写出栈的链式存储结构的类型概念。
4.在起泡排序进程中,有的关键字在某趟排序中可能朝着与最终排序相反的方向移动,试举例说明之。
5.简述参数传递的要紧方式及其特点。
二-判定正误:
(每题1分,共5分)
正确在()内打不然打X。
()
(1)在拓朴序列中,若是结点Vi排在结点VJ的前面,那么必然存在从Vi到Vj的途径。
(°)
(2)在采纳线性探测法处置冲突的散列表中,所有同义词在表中必然相邻。
()(3)在一个小根堆中,具有最大值的元素必然是叶结点。
()(4)索引顺序表的特点是块间可无序,但块内必然要有序。
()(5)哈夫曼树中没有度为1的结点,因此必为满二叉树。
三、单项选择题:
(每题1分,共5分)
1.关于只在表的首.尾进行插入操作的线性表,宜采纳的存储结构为:
A)顺序表B)用头指针表示的单循环链表
C)用尾指针表示的单循环链表D)单链表
2.假设以第一个元素为分界元素,对字符序列(Q,H,C,Y,P,A,M,S,R,D,F,X)进行快速排序,那么第一次划分的结果是:
A)(A,C,D,F,H,M9P,Q,R,S,X,Y)B)(A,F,H,C,D,P,M,Q,R,S,Y,X)
C)(F,H,C,D,P,A,M,Q,R,S,Y,X)D)(P,A,M,F,H,C,D,Q,S,Y,R,X)
3.下面是三个关于有向图运算的表达:
(1)求有向图结点的拓扑序列,其结果必然是唯一的
(2)求两个指向结点间的最短途径,其结果必然是唯一的
(3)求AOE网的关键途径,其结果必然是唯一的
其中哪个(些)是正确的?
A)只有
(1)B)
(1)和
(2)C)都正确D)都不正确
4.假设进栈序列为a,b,c,那么通过入出栈操作可能取得的a,b,c的不同排列个数为:
A)4B)5C)6D)7
5.以下关于广义表的表达中,正确的选项是:
A)广义表是由0个或多个单元素或子表组成的有限序列
B)广义表至少有一个元素是子表
C)广义表不能递归概念D)广义表不能为空表
4.填空题:
(每题2分决20分)
1.一棵含有101个结点的完全二叉树存储在数组A[1..1O1]中,对l 叶结点,那么k的最小值是: k的最大值是: o 2.s=? YOUAREJUDGINGITRIGHTORWRONGS顺序执行以下操作: SubString(sub11,8片SubString(sub2,s,20,5);StrCat(subl,sub2);那么最后subl的值 3.假设一个算法中的语句频度之和为T(n)=3720n+4nlogn,那么算法的时刻复杂度为 4.广义表((((a),b)£),d啲表头是,表尾是 5.已知有向图的邻接矩阵,要计算i号结点的入度,计算方式是: 将累加。 6.要在一个单链表中p所指结点以后插入一个子链表,子链表第一个结点的地址为s,子 链表最后一个结点的地址为t,那么应执行操作: 和 7.用带头结点的循环链表表示的队列,假设只设尾指针rear,那么队空的条件 是。 8.已知二维数组A[10](20]采纳行序为主方式存储,每一个元素占2个存储单元,而且A[0][0] 的存储地址是1024,那么A[6][18啲地址是 9.在表示二叉树的二叉链表中,共有个空链域。 io-n个极点的连通无向图至少有条边,最多有 条边。 5.构造题: (每题6分,共3()分) 1.已知二叉树的中序序列为DBGEAFC,后序序列为DGEBFCA,给出对应的二叉树。 2.已知一个图的极点为A.B、C.D,其邻接矩阵的上三角元素全为0(包括主对角线元素人其他元素均为1。 请画出该图,并给出其邻接表。 3.给定权值{8,12,4,5,26,16,9},构造一棵带权途径长度最短的二叉树,并计算其带权途径长度。 4.图2表示一个地域的通信网,边表示城市间的通信线路,边上的权值表示架设线路花费的代价,请找出能连通每一个城市、且总代价最省的条线路。 图2 5.对关键字序列(72,87,61,23,94,16,05,58)进行堆排序,使之按关键字递减顺序排列。 请写出排序进程中取得的初始堆和一趟排序后的序列状态。 六、算法设计题: (共25分) 1.设有一个由正整数组成的单链表L(含头结点),编写完成以下功能的算法: 找出最小值结点P,假设最小值是奇数,那么删除结点P。 [15分] 2.已知树用小孩兄弟链表存储,root指向根结点。 编写算法,逐层遍历这棵树。 [10分] 《数据结构》试卷参考答案 1.简答题: (每题3分,共15分) 1.前驱与后继之间一样为一对多或多对多的关系。 2.顺序表优势: 随机査找,存储密度大 顺序表缺点: 描入.删除不便,静态分派.表长固定 单链表优势,插入.删除方便,动态分派,表长灵活 单链表缺点: 查找不便,存储密度小 3.关键字相同的两个记录,排序前后其前后顺序不变。 4.typedefstructnode{ ElemTypedata; structnode♦next; }inkSt^ck* 5.当二叉排jr樁接近平稳二叉树或完全二叉树时査找性能较好,当二叉排序树为单边单枝二叉树时査找性能最差。 2.判定正误: (每题1分,共5分) 正确在()内打丁,不然打Xo (X) (1)(X) (2)3)(3)(X)(4)(X)(5) 3.单项选择题: (每题1分,共5分) 1.C)2.C)3.D)4.B)5.A) 4.填空题: 侮题2分决20分) 1.12.5YOUARERIGHT5 3.0(nlogn)4.(((a),b),c),(d) 5.i列元素6.t->next=p->next,p->next=s 7.rear->next==rear8.1300 9.n+1 10-nT 五、构造题: (每题6分,共30分)1. 1 WPL=8X3+4X4+5X4+16X2+9X3+12X3+26X2=207 [注]: 哈夫曼树的左右子树能够互换。 2. [解1]: 11 5 9 [解2]: [注h边上的权值能够省略。 1・ 初始堆: 05,23,16,58,94,72,61,87 一趟排序后的序列状态: 筛成堆后为: 16,23,61,58,94,72,87,05 16 23 61 58)<94 72JI87 05 [注]: 若是釆纳大根堆,应适当减分。 六、算法设计题: (共25分)3・[15分] voidmin(LinkListL){if(L->next==NULL)return;q=L;r=L->next;m=r->data;while(r->next! =NULL) {if(r->next->data {m=r->next->data;q=r;}r=r->next; } p=q->next; if(m%2==l){q->next=p->next;free(p);} 4.[10分] voidlayer(CSTreeroot){ InitQueue(&Q);EnterQueue(&Q,root);while(! Empty(Q)) {DelQueue(&Q,&p);visit(p);p=p->FirstChild;while(p! =NULL) {EnterQueue(&Q,p);p=p->NextSibling;} 数据结构辅导试题三 一、简答题(15分,每题3分) 1.简要说明算法与程序的区别。 2.在哈希表中,发生冲突的可能性与哪些因素有关? 什么缘故? 3・说明在图的遍历中,设置访问标志数组的作用。 4.说明以下三个概念的关系: 头指针,头结点,首元素结点。 5・在一样的顺序队列中,什么是假溢出? 如何解决假溢出问题? 二、判定题(10分.每题1分) 正确在括号内打V,错误打X () (1)广义表(((a),b),c)的表头是((a),b),表尾是(c)。 () (2)在哈夫曼树中,权值最小的结点离根结点最近。 ()(3)基数排序是高位优先排序法。 ()(4)在平稳二叉树中,任意结点左右子树的髙度差(绝对值)不超过lo ()(5)在单链表中,给定任一结点的地址p,那么可用下述语句将新结点S插入结点P的后面: p->next=s;s->next=p->next; ()(6)抽象数据类型(ADT)包括概念和实现两方面,其中概念是独立于实现的,概念仅给出一个ADT的逻辑特性,没必要考虑如安在运算机中实现。 ()(7)数组元素的下标值越大,存取时刻越长。 ()(8)用邻接矩阵法存储一个图时,在不考虑紧缩存储的情形下,所占用的存储空间大小只与图中结点个数有关,而与图的边数无关。 ()(9)拓扑排序是按AOE网中每一个结点事件的最先发生时刻对结点进行排序。 ()(10)长度为1的串等价于一个字符型常量。 三、单项选择题(10分,每题1分) 1・科乍序时扫描待排序记录序列,按序比较相邻的两个元素的大小,逆序时就互换位置。 这是哪一种排序方式的大体思想? A.堆排序B、直接插入排序C.快速排序D.冒泡排序 2.已知一个有向图的邻接矩阵表示,要删除所有从第1个结点发出的边,应该: A)将邻接矩阵的第1行删除B)将邻接矩阵的第1行元素全数置为0C)将邻接矩阵的第i列删除D)将邻接矩阵的第1列元素全数置为0 3.有一个含头结点的双向循环链表,头指针为head,那么其为空的条件是: A.head->prlro==NULLB.head->next==NULL C.head->next==headD.head->next->priro==NULL 4・在顺序表(3,6,&10,12,15,16,18,21,25,30)中,用折半法査找关键码值11,所需的关键码比较次数为: A)2B)3C)4D)5 5.以下哪个不是队列的大体运算? A)从队尾插入一个新元素B)从队列中删除第i个元素 C)判定一个队列是不是为空D)读取队头元素的值 6.在长度为n的顺序表的第i个位置上插入一个元素(l A)n-1+1B)n-1C)ID)1-1 7.关于只在表的首、尾两头进行插入操作的线性表,宜采纳的存储结构为: A)顺序表B)用头指针表示的循环单链表 C)用尾指针表示的循环单链表D)单链表 8.对包括n个元素的哈希表进行査找,平均査找长度为: A)O(log2n)B)O(n)C)O(nlog2n)D)不直接依托于n 9.将一棵有100个结点的完全二叉树从根这一层开始,每一层从左到右依次对结点 ''进行编号,根结点编号为1,那么编号最大的非叶结点的编号为: A、4849C、50D.51 10.某二叉树结点的中序序列为A、B、C、D、E、F、G,后序序列为B、D、c.A.F.G.E,那么其左子树中结点数量为: A)3B)2C)4D)5 四、填空题(10分,每空1分) 1.填空完成下面一趙快速排序算法: intQKPass(RecordTyper[],intlow,inthigh) {x=r[low]; while(low { while(low high・・; if(low {r[]=r[high];low++;} while(low 1OW++;If(low {r[]=r[low];high-;} } r[low]=x;returnlow; } 2.假设用循环单链表实现队列,假设队列非空,且队尾指针为R,那么将新结点 S加入队列时,需执行下面语句: ;: R=S; 3.一般是以算法执行所花费的和所占用的来判定一个算法 的好坏。 4.已知一个3行、4列的二维数组A(各维下标均从1开始),若是按“以列为 主”的顺序存储,那么排在第8个位置的元素是: 5.高度为h的完全二叉树最少有个结点。 五、构造题(20分) 1.(4分)已知数据结构DS的概念如下,请给出其逻辑结构图示。 DS=(D,R) D={a,b,c,d,e,f,g} R={T} T={,va,g>,vb,g>,vc,b>,vd,c>, 2.(6分)对以下关键字序列成立哈希表: (SUN,MON,TUE,\VED,THU,FRI,SAT),哈希函数为H(K)=(K中最后一个字母在字母表中的序号)MOD7o用线性探测法处置冲突,要求构造一个装填因子为的哈希表,并计算出在等概率情形下査找成功的平均査找长度。 3.(6分)将关键字序列(3,26,12,6b38,40,97,75,53,87)调整为 大根堆。 4.(4分)已知权值集合为: {5,7,2,3,6,9},要求给出哈夫曼树,并计算其带权途径长度WPLO 六、算法分析题(10分) 阅读下面程序,并回答有关问题。 其中BSTree为用二叉链表表示的二叉排序树类型。 (1)简要说明程序功能。 (5分) (2)n个结点的满二叉树的深度h是多少? (3分) (3)假设二叉排序树*bst是有n个结点的满二叉树,给出算法的时刻复杂度。 (2分) intProc(BSTree*bst,KeyTypeK) {BSTreef,q,s; s=(BSTree)malloc(sizeof(BSTNode)); s・>key=K;s->lchild=NULL;s->rchlld=NULL; if(*bst==NULL){*bst=s;return1;} f=NULL;q=*bst; while(q! =NULL) {if(K {f=q;q=q->lchild;} else {f=q;q=q・>「child;} } if(K elsef->rchild=s; return1; 七、算法设计题(25分)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 考试 试题