数据结构第一次至第四次作业答案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第一次作业答案
填空题:
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<m;i++)
for(j=0;j<n;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("%d\n",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 6 3 1 1 3 1 4 6 1 3 1 4 4
2 6
1
3 1 4
4 2 2
5 6 1 3 1 4 4 2 2 5 5 3
第四次作业答案
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