数据结构第一次至第四次作业答案

数据结构第一次至第四次作业答案

2023年7月20日发(作者:)

第一次作业答案

填空题:

1、已知栈的基本操作函数:

int InitStack(SqStack *S); //构造空栈

int StackEmpty(SqStack *S);//判断栈空

int Push(SqStack*S,ElemType e);//入栈

int Pop(SqStack *S,ElemType *e);//出栈

函数conversion实现十进制数转换为八进制数,请将函数补充完整。

void conversion(){

InitStack(S);

scanf("%d”,&N);

while(N){

Push(S,N%8) ;

N=N/8;

}

while(

!StackEmpty(S) ){

Pop(S,&e);

printf("%d”,e);

}

}//conversion

2.设循环队列的容量为70,现经过一系列的入队和出队操作后,front为20,rear为11,则队列中元素的个数为(615)。

3.在一个单链表中删除p所指结点的后继结点时,应执行以下操作:

q=p->next;

p->next=(q->next)

4.一个算法的效率可分为(时间 )效率和( 空间)效率。

5.数据结构被形式地定义为(D, R),其中D是(数据元素 )的有限集合,R是D上的(关系)有限集合。

6.下面程序段的时间复杂度是(0(m*n))

for(i=0;i

for(j=0;j

a[i][j]=i*j;

选择题:B 判断题:错误 正确 错误

单选题:A D B 多选题:ACD ACD CD

第二次作业答案

选择题:A D B B C B 判断题:错误 错误

主观题:

3、广义表A=((a),a)的表头是(a)

4、稀疏矩阵一般的压缩存储方法有(三元组)和(十字链表)两种。

5、用顺序存储的方法,将完全二叉树中所有结点按层逐个从左到右的顺序存放在一维数组R[1..N]中,若结点R有右孩子,则其右孩子是R[2i+1]。

6、如果从无向图的任一顶点出发进行一次深度优先搜索即可访问所有顶点,则该图一定是连通图。

7、n个顶点的连通图至少有n-1条边。

8、已知一个有序表为(11,22,33,44,55,66,77,88,99),则折半查找55需要比较(1)次

9、对一棵二叉排序树按(中序)遍历,可得到结点值从小到大的排列序列。

10、一个序列中有10000个元素,若只想得到其中前10个最小元素,则最好采用(堆排序)方法。

第三次作业答案

B C C

论述题:

1.

答:共计14种,分别是:1234, 1243, 1324, 1342, 1432, 2134, 2143,

2341, 2314, 2431, 3214, 3241, 3421, 4321 。

主观题答案:

答:

1、① 全进之后再出情况,只有1种:4,3,2,1

② 进3个之后再出的情况,有3种,3,4,2,1 3,2,4,1 3,2,1,4

③ 进2个之后再出的情况,有5种,2,4,3,1 2,3,4,1 2,1, 3,4

2,1,4,3 2,1,3,4

④ 进1个之后再出的情况,有5种,1,4,3,2 1,3,2,4 1,3,4,2 1,

2,3,4 1,2,4,3

2、先序遍历:BEFCGDH 中序遍历:FEBGCHD 后序遍历:FEHGDCB

3、DLR(liuyu *root) /*中序遍历 递归函数*/

{if(root!=NULL)

{if((root->lchild==NULL)&&(root->rchild==NULL)){sum++;

printf("%dn",root->data);}

DLR(root->lchild);

DLR(root->rchild); }

return(0); }

4、(1)s->next=p->next (2)p->next=s

5、(1)ACBD(2)ACDB (3)ADCB (4)BCDA (5)BCAD (6)BDCA

(7) CABD (8)CADB (9)CDAB (10)DCBA

6、

7、:(1)广度优先遍历序列:1; 2, 3, 4; 5; 6

(2)最小生成树(prim算法)

1 1 1 1

1 1 1 1 2

3 3 3 3

5

4 4 4

6 4

2

6 4

2

6

1

1 2

3

5 3

5

4

4

2

6

第四次作业答案

1、写出用直接插入排序将关键字序列{54,23,89,48,64,50,25,90,34}排序过程的每

一趟结果。

答案:初始: 54,23,89,48,64,50,25,90,34 1:

(23,54)

,89,48,64,50,25,90,34 2:

(23,54,89)

,48,64,50,25,90,34 3:

(23,48,54,89)

,64,50,25,90,34 4:

(23,48,54,64,89)

,50,25,90,34 5:

(23,48,50,54,64,89)

,25,90,34 6:

(23,25,48,50,54,64,89)

,90,34 7:

(23,25,48,50,54,64,89,90)

,34 8:

(23,25,48,50,54,64,89,90,34)

2设待排序序列为{10,18,4,3,6,12,1,9,15,8}请写出希尔排序每一趟的结果。增量序列为 5,3,2,1。

答案:初始: 10,18,4,3,6,12,1,9,15,8 d=5: 10,1,4,3,6,12,18,9,15,8 d=3: 3,1,4,8,6,12,10,9,15,18 d=2: 3,1,4,8,6,9,10,12,15,18 d=1: 1,3,4,6,8,9,10,12,15,18

3. m*n

4. n*n 5. 设循环队列的容量为40(序号从0到39),现经过一系列的入队和出队运算后,有

① front=11,rear=19;

② front=19,rear=11;问在这两种情况下,循环队列中各有元素多少个?

答:用队列长度计算公式:(N+r-f)%N

(1)L=(40+19-11)%40=8

(2)L=(40+11-19)%40=32

6、若一个线性表中最常用的操作是取第i个元素和找第i个元素的前趋元素,则采用(顺序表)存储方式最节省时间.

7.在一个长度为n的顺序表中删除第i个元素,需要向前移动( N-i)个元素

8、带头结点的单链表head为空的判定条件是(head->next==NULL)

9、一个循环队列Q的存储空间大小为M,其队头和队尾指针分别为front和rear,则循环队列中元素的个数为(rear-front+m)%m

10、设串长为n,模式串长为m,则KMP算法所需的附加空间为(O(m))

A:唯一的

B:31

C:是一棵树也是一棵二叉树

C:28

D:可行性、确定性和有穷性

发布者:admin,转转请注明出处:http://www.yc00.com/xiaochengxu/1689851019a290439.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信