数据结构试题修2.docx
- 文档编号:24822629
- 上传时间:2023-06-01
- 格式:DOCX
- 页数:34
- 大小:50.08KB
数据结构试题修2.docx
《数据结构试题修2.docx》由会员分享,可在线阅读,更多相关《数据结构试题修2.docx(34页珍藏版)》请在冰豆网上搜索。
数据结构试题修2
试卷一
一、单项选择题(每题2分,共20分)
1.对一个算法的评论,不包含以下()方面的内容。
A.强健性和可读性
B.并行性
C.正确性
D.时空复杂度
2.
在带有头结点的单链表
HL中,要向表头插入一个由指针
p指向的结点,则履行(
)。
A.p->next=HL->next;HL->next=p;
B.p->next=HL;HL=p;
C.p->next=HL;p=HL;
D.HL=p;p->next=HL;
3.
对线性表,在以下哪一种状况下应该采纳链表表示?
(
)
A.常常需要随机地存取元素
B.常常需要进行插入和删除操作
C.表中元素需要占有一片连续的储存空间
D.表中元素的个数不变
4.
一个栈的输入序列为
123,则以下序列中不行能是栈的输出序列的是()
5.
AOV网是一种(
)。
A.有向图
B.无向图
C.无向无环图
D.有向无环图
7.
若需要利用形参直接接见实参时,应将形参变量说明为(
)参数。
A.值
B.函数
C.指针
D.引用
8.
在稀少矩阵的带行指针向量的链接储存中,每个单链表中的结点都拥有同样的(
)。
A.行号
B.列号
C.元素值
D.非零元素个数
二、填空题(每空1分,共28分)
1.数据结构是指数据及其互相之间的______________。
当结点之间存在M对N(M:
N)的联系时,称这类结构为_____________________。
2.行列的插入操作是在行列的___尾______进行,删除操作是在行列的____首______进行。
当用长度为N的数组次序储存一个栈时,假设用top==N表示栈空,则表示栈满的条件是3.
___top==0_____________。
4.关于一个长度为
n的单链储存的线性表,在表头插入元素的时间复杂度为
_________,在表
尾插入元素的时间复杂度为
____________。
7.二叉树是指度为2的____________________树。
一棵结点数为N的二叉树,其全部结点的度的总和是_____________。
8.对一棵二叉搜寻树进行中序遍历时,获得的结点序列是一个______________。
对一棵由算
术表达式构成的二叉语法树进行后序遍历获得的结点序列是该算术表达式的
__________________。
9.关于一棵拥有n个结点的二叉树,用二叉链表储存时,其指针总数为_____________个,其
中_______________个用于指向孩子,_________________个指针是安闲的。
10.若对一棵完整二叉树从0开始进行结点的编号,并按此编号把它次序储存到一维数组A中,
即编号为0的结点储存到A[0]中。
其他类推,则A[i]元素的左孩子元素为________,右孩子元素为
_______________,双亲元素为____________。
11.在线性表的散列存储中,处理冲突的常用方法有________________________和
_____________________________两种。
三、
运算题(每题6分,共
24分)
1.已知一个65稀少矩阵以下所示,试:
(1)写出它的三元组线性表;
00001
00000
01000
00002
50000
00700
(2)给出三元组线性表的次序储存表示。
2.设有一个输入数据的序列是{46,25,78,62,12,80},试画出从空树起,逐一输入各个数据而生成的二叉搜寻树。
3.关于图6所示的有向图若储存它采纳毗邻表,而且每个极点毗邻表中的边结点都是依据终点序号从小到大的序次链接的,试写出:
从极点①出发进行深度优先搜寻所获得的深度优先生成树;
从极点②出发进行广度优先搜寻所获得的广度优先生成树;
4.已知一个图的极点集V和边集E分别为:
V={1,2,3,4,5,6,7};
E={<2,1>,<3,2>,<3,6>,<4,3>,<4,5>,<4,6>,<5,1>,<5,7>
<6,1>,<6,2>,<6,5>};
若储存它采纳毗邻表,而且每个极点毗邻表中的边
结点都是依据终点序号从小到大的序次链接的,按主教
图6
材中介绍的拓朴排序算法进行排序,试给出获得的拓朴
排序的序列。
四、阅读算法(每题
7分,共14分)
1.intPrime(intn){inti=1;
intx=(int)sqrt(n);
while(++i<=x)
if(n%i==0)break;
if(i>x)return1;
elsereturn0;}
(1)指出该算法的功能;
(2)该算法的时间复杂度是多少?
2.写出下述算法的功能:
voidAJ(adjlistGL,inti,intn)
{QueueQ;InitQueue(Q);cout<
QInsert(Q,i);
while(!
QueueEmpty(Q)){
intk=QDelete(Q);
edgenode*p=GL[k];
while(p!
=NULL)
{intj=p->adjvex;
if(!
visited[j])
{cout< p=p->next;}}} HL是单链表的头指针,试写出删除头结点的算法。 ElemTypeDeleFront(LNode*&HL) 参照答案 一、单项选择题(每题2分,共20分) 二、填空题(每空1分,共26分) 1. 2. 3. 4. 5. 6. 6 1 3 4 5 6 联系图(或图结构) 尾首 top==0 O (1)O(n) 12844108 33 5 5 7. 有序 n-1 8. 有序序列 后缀表达式(或逆波兰式) 5 1 9. 2nn-1 n+1 2 -1 5 -2 10. 2i+1 2i+2 (i-1)/2 1 5 11. 开放定址法 链接法 3 7 12. 迅速 合并 图7 三、 运算题(每题 6分,共24分) 1. (1)((1,5,1),(3,2,-1),(4,5,-2),(5,1,5),(6,3,7)) (3分) 图8 (2)三元组线性表的次序储存表示如图7示。 2.如图8所示。 3.DFS: BFS: 4. 四、 拓朴排序为: 436572 阅读算法(每题7分,共 1 14分) 1. (1)判断n是不是素数(或质数) (2)O(n) 2.功能为: 从初始点vi出发广度优先搜寻由毗邻表GL所表示的图。 六、编写算法(8分) ElemTypeDeleFront(LNode*&HL) {if(HL==NULL){ cerr<<"空表"< exit (1);} LNode*p=HL; HL=HL->next; ElemTypetemp=p->data; deletep; returntemp;} 试卷十三 一、选择题(30分) 1.以下程序段的时间复杂度为()。 for(i=0; i i++)for(j=0 ; j j++)c[i][j]=0 ; for(i=0; i i++)for(j=0 ; j j++)for(k=0 ; k k++)c[i][j]=c[i][j]+a[i][k]*b[k][j] ; (A)O(m*n*t) (B)O(m+n+t) (C)O(m+n*t) (D)O(m*t+n) 2.设次序线性表中有 n个数据元素,则删除表中第 i个元素需要挪动( )个元素。 (A)n-i (B)n+l-i (C)n-1-i (D)i 3.设 F是由 T1、T2 和 T3 三棵树构成的丛林,与 F对应的二叉树为 B,T1、T2 和 T3 的结点数 分别为 N1、N2 和 N3,则二叉树 B的根结点的左子树的结点数为( )。 (A)N1-1 (B)N2-1 (C)N2+N3 (D)N1+N3 4.利用直接插入排序法的思想成立一个有序性表的复度()。 (A)O(n) (B)O(nlog2n) (C)O(n2) (D)O(1og 2n) 5.指量 p指向双向表中点 A,指量 s指向被插入的点 X,在点 A的后边插 入点 X的操作序列( )。 (A)p->right=s;s->left=p;p->right->left=s; (B)s->left=p;s->right=p->right;p->right=s; s->right=p->right p->right->left=s; ; (C)p->right=s;p->right->left=s;s->left=p;s->right=p->right; (D)s->left=p;s->right=p->right;p->right->left=s;p->right=s; 7.入序列1、2、3、⋯、n作用后,出序列中的第一个元素是 n,出序列中的第 i个出元素是( )。 (A)n-i (B)n-1-i (C)n+l-i (D)不可以确立 8.散列表中有m个存元,散列函数 H(key)=key%p,p最好( )。 (A)小于等于m的最大奇数 (B) 小于等于m的最大素数 (C)小于等于m的最大偶数 (D) 小于等于m的最大合数 9.在一棵度数 3的中,度数 3的点数有2个,度数2的点数有 1个,度数1的 点数有2个,那么度数0的点数有( )个。 (A)4 (B)5 (C)6 (D)7 10.完整无向中有 n个点,完整无向中有( )条。 (A)n(n-1)/2 (B)n(n-1) (C)n(n+1)/2 (D)(n-1)/2 14.有向无G中的有向会合E={<1,2>,<2,3>,<3,4>,<1,4>},以下属于有向 G的一种拓扑排序序列的是( )。 (A)1,2,3,4 (B)2,3,4,1 (C)1,4,2,3 (D)1,2,4,3 二、填空(30分) 1.指p指向表中点A,指s指向被插入的点X,在点A的前面插入点X 的操作序列: 1)s->next=___________;2)p->next=s;3)t=p->data;4)p->data=___________; 5)s->data=t; 2.某棵完整二叉中有100个点,二叉中有______________个叶子点。 3.某序循列中有m个元素,且定指F指向元素的前一个地点,尾指 R指向尾元素的目前地点,循列中最多存_______列元素。 6.一初始关字序列(20,12,42,31,18,14,28),依据些关字构 _______________________________ 7. 一棵二叉的中序遍序列 BDCA,后序遍序列 DBAC,棵二叉的前序序 列____________________。 8.设用于通讯的电文仅由8个字母构成,字母在电文中出现的频次分别为7、19、2、6、32、 3、21、10,依据这些频次作为权值结构哈夫曼树,则这棵哈夫曼树的高度 为________________。 10.设无向图G(如右图所示),则其最小生成树上全部边的权值之和为 _________________。 三、判断题(20分) 1. 有向图的毗邻表和逆毗邻表中表结点的个数不必定相等。 () 2. 对链表进行插入和删除操作时不用挪动链表中结点。 ( ) 3. 子串“ABC”在主串“AABCABCD”中的地点为2。 ( ) 4. 若一个叶子结点是某二叉树的中序遍历序列的最后一个结点, 则它必是该二叉树的先序遍历 序列中的最后一个结点。 () 6.用毗邻矩阵作为图的储存结构时,则其所占用的储存空间与图中极点数没关而与图中边数有 关。 ( ) 7. 中序遍历一棵二叉排序树能够获得一个有序的序列。 () 8. 入栈操作和入行列操作在链式储存结构上实现时不需要考虑栈溢出的状况。 () 9. 次序表查找指的是在次序储存结构长进行查找。 ( ) 10.堆是完整二叉树,完整二叉树不必定是堆。 () 五、算法设计题(20分) 1.设计计算二叉树中全部结点值之和的算法。 2.设计将全部奇数移到全部偶数以前的算法。 3.设计判断单链表中元素是不是递加的算法。 参照答案 一、选择题 1.A 2.A 3.A 4.C 5.D 6.D 7.C 8.B 9.C 10.A 11.C 12.C 13.D 14.A 15.A 二、填空题 1. p->next,s->data2. ,85. 迅速,堆 7. CBDA8. 6 9. (24,65,33,80,70,56,48) 10.8 三、判断题 1.错 2.对 3.对 4.对 5.错 6.错7.对8.对9.错10.对 四、算法设计题 1.设计计算二叉树中全部结点值之和的算法。 voidsum(bitree*bt,int&s) {if(bt! =0){s=s+bt->data;sum(bt->lchild,s);sum(bt->rchild,s);} } 2.将全部奇数移到全部偶数以前的算法。 voidquickpass(intr[],ints,intt) {inti=s,j=t,x=r[s]; while(i {while(i while(i r[i]=x;} 3.判断表中元素是不是增的算法。 intisriselk(lklist*head) {if(head==0||head->next==0)return (1);else for(q=head,p=head->next;p! =0;q=p,p=p->next)if(q->data>p->data)return(0);return (1);} 卷十四 一、(24分) 1.以下程序段的复度()。 i=0,s=0; while(s ;i++;} (A)O(n 1/2) (B)O(n1/3) (C)O(n) (D)O(n2) 2.某表中最常用的操作是在表的尾部插入或除元素,用以下()存方式最省 运算。 (A)向表 (B)向循表 (C)双向表 (D)双向循表 3.指 q指向表中点 A,指 p指向表中点 A的后点 B,指 s指向被插入 的点 X,在点 A和点 B插入点 X的操作序列( )。 (A)s->next=p->next;p->next=-s; (C)p->next=s->next;s->next=p; (B)q->next=s;s->next=p; (D)p->next=s;s->next=q; 4.入序列1、2、3、4、5、6,通的作用后能够获得的出序列()。 (A)5,3,4,6,1,2(B)3,2,5,6,4,1 (C)3,1,2,5,4,6(D)1,5,4,6,2,3 5.有一个10的下三角矩A(包含角),依据从上到下、从左到右的序存到的 55 个存元中,每个数元素占1个字的存空,A[5][4]地点与A[0][0]的地点之差 ( )。 (A)10 (B)19 (C)28 (D)55 6.一棵 m叉中有 N1个度数 1的点, N2个度数 2的点,⋯⋯,Nm 个度数 m的 点,中共有( )个叶子点。 m m m m (i1)Ni Ni Ni 1 (i1)Ni (A)i1 (B)i1 (C)i2 (D) i 2 8.设一组权值会合W=(15,3,14,2,6,9,16,17),要求依据这些权值会合结构一棵哈夫曼树, 则这棵哈夫曼树的带权路径长度为()。 (A)129 (B)219 (C)189 (D)229 9.设有 n个重点字拥有同样的 Hash函数值,则用线性探测法把这 n个重点字映照到 HASH 表中 需要做( )次线性探测。 (A)n2 (B)n(n+1) (C)n(n+1)/2 (D)n(n-1)/2 10.设某棵二叉树中只有度数为 0和度数为 2的结点且度数为 0的结点数为 n,则这棵二叉中共有 ()个结点。 (A)2n (B)n+l (C)2n-1 (D)2n+l 二、填空题 (48分,此中最后两小题各 6分) 1.设需要对5个不一样的记录重点字进行排序,则起码需要比较_____________次,至多需要比较_____________次。 5.设一棵m叉树脂的结点数为n,用多重链表表示其储存结构,则该树中有_________个空指 针域。 6.设指针变量p指向单链表中结点A,则删除结点A的语句序列为: q=p->next;p->data=q->data;p->next=___________;feee(q); 7.数据结构从逻辑上区分为三种基本种类: ___________、__________和___________。 8.设无向图G中有n个极点e条边,则用毗邻矩阵作为图的储存结构进行深度优先或广度优先遍历时的时间复杂度为_________;用毗邻表作为图的储存结构进行深度优先或广度优先遍历的时间复杂度为_________。 .12. 设有向图 G中的有向边的会合 E={<1,2>,<2,3>,<1,4>,<4,5>,<5,3>,<4,6>, <6,5>},则该图的一个拓扑序列为 _________________________。 13.下边程序段的功能是成立二叉树的算法,请在下划线处填上正确的内容。 typedefstructnode{intdata;structnode*lchild;________________;}bitree; voidcreatebitree(bitree*&bt) { scanf(“%c”,&ch); if(ch=='#')___________;else {bt=(bitree*)malloc(sizeof(bitree));bt->data=ch;________;createbitree(bt->rchild);} } 14.下边程序段的功能是利用从尾部插入的方法成立单链表的算法,请在下划线处填上正确的内 容。 typedefstructnode{intdata;structnode*next;}lklist; voidlklistcreate(_____________*&head) {for(i=1;i<=n;i++) {p=(lklist*)malloc(sizeof(lklist));scanf(“%d”,&(p->data));p->next=0;if(i==1)hea
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 试题