欢迎来到天天文库
浏览记录
ID:57127715
大小:738.50 KB
页数:31页
时间:2020-08-03
《数据结构与算法离线作业说课讲解.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、数据结构与算法离线作业精品文档浙江大学远程教育学院《数据结构与算法》课程离线作业—————————————————————————————一、填空题:(【序号,章,节】。。。。。。)【1,1,2】线性结构中元素之间存在一对一关系,树形结构中元素之间存在 一对多 关系,图形结构中元素之间存在 多对多 关系。【2,1,2】为了最快地存取数据元素,物理结构宜采用顺序存储结构。【3,1,2】存储结构可根据数据元素在机器中的位置是否一定连续分为顺序存储结构_,链式存储结构_。【4,1,3】度量算法效率可通过时间复杂度
2、_来进行。【5,1,3】设n为正整数,下面程序段中前置以记号@的语句的频度是n(n+1)/2。for(i=0;i3、j=i;j<=n;j++)@k++;//语句的频度是_____n(n+1)/2______。}【7,3,2】线性表(a1,a2,…,an)有两种存储结构:顺序存储结构和链式存储结构,请就这两种存储结构完成下列填充:_顺序存储密度较大;_顺序_存储利用率较高;_顺序_可以随机存取;__链式__不可以随机存取;__链式__插入和删除操作比较方便。【8,3,2】从一个长度为n的顺序表中删除第i个元素(1≤i≤n)时,需向前移动n-i个元素。【9,3,2】带头结点的单链表Head为空的条件是____Head->ne4、xt=NULL____。【10,3,2】在一个单链表中p所指结点(p所指不是最后结点)之后插入一个由指针s所指结点,应执行s->next=__p->next___;和p->next=___s_____的操作。【11,3,2】在一个单链表中删除p所指结点时,应执行以下操作:q=p->next;p->data=p->next->data;p->next=p->next->next;free(q);【12,3,2】带头结点的单循环链表Head的判空条件是_Head->next==Head__;不带头结点的单循环链5、表的判空条件是__Head==NULL__。收集于网络,如有侵权请联系管理员删除精品文档【13,3,2】已知L是带表头结点的非空单链表,且P结点既然不首元结点,也不是尾元结点,试从下列提供的答案中选择合适的语句序列。a.删除P结点的直接前驱结点的语句序列是___1012811414____。b.删除结点P的语句序列是____10127314____。c.删除尾元结点的语句序列是___911314___。(1)P=P->next;(2)P->next=P;(3)P->next=P->next->next;(46、)P=P->next->next;(5)while(P!=NULL)P=P->next;(6)while(Q->next!=NULL){P=Q;Q=Q->next};(7)while(P->next!=Q)P=P->next;(8)while(P->next->next!=Q)P=P->next;(9)while(P->next->next!=NULL)P=P->next;(10)Q=P;(11)Q=P->next;(12)P=L;(13)L=L->next;(14)free(Q);【14,3,3】对一个栈7、,给定输入的顺序是A、B、C,则全部不可能的输出序列有不可能得到的输出序列有CAB。【15,3,3】.在栈顶指针为HS的链栈中,判定栈空的条件是 head->next==NULL 。【16,3,3】下列程序把十进制数转换为十六进制数,请填写合适的语句成分。voidconversion10_16(){InitStack(&s);收集于网络,如有侵权请联系管理员删除精品文档scanf(“%d”,&N);while(N){______Push(s,N%16)___;N=N/16;}while(!StackEmpt8、y(s)){_____Pop(s,e);if(e<=9)printf(“%d”,e);elseprintf(“%c”,e-10+’A’);}}/*conversion*/【17,3,4】若用一个大小为6个元素的数组来实现循环队列,且当前rear=0和front=3。当从队列中删除一个元素,再加入两个元素后,rear和front的值分别是2和4。【18,3,4】堆栈和队列都是线性表,堆栈是___后进先出____的线
3、j=i;j<=n;j++)@k++;//语句的频度是_____n(n+1)/2______。}【7,3,2】线性表(a1,a2,…,an)有两种存储结构:顺序存储结构和链式存储结构,请就这两种存储结构完成下列填充:_顺序存储密度较大;_顺序_存储利用率较高;_顺序_可以随机存取;__链式__不可以随机存取;__链式__插入和删除操作比较方便。【8,3,2】从一个长度为n的顺序表中删除第i个元素(1≤i≤n)时,需向前移动n-i个元素。【9,3,2】带头结点的单链表Head为空的条件是____Head->ne
4、xt=NULL____。【10,3,2】在一个单链表中p所指结点(p所指不是最后结点)之后插入一个由指针s所指结点,应执行s->next=__p->next___;和p->next=___s_____的操作。【11,3,2】在一个单链表中删除p所指结点时,应执行以下操作:q=p->next;p->data=p->next->data;p->next=p->next->next;free(q);【12,3,2】带头结点的单循环链表Head的判空条件是_Head->next==Head__;不带头结点的单循环链
5、表的判空条件是__Head==NULL__。收集于网络,如有侵权请联系管理员删除精品文档【13,3,2】已知L是带表头结点的非空单链表,且P结点既然不首元结点,也不是尾元结点,试从下列提供的答案中选择合适的语句序列。a.删除P结点的直接前驱结点的语句序列是___1012811414____。b.删除结点P的语句序列是____10127314____。c.删除尾元结点的语句序列是___911314___。(1)P=P->next;(2)P->next=P;(3)P->next=P->next->next;(4
6、)P=P->next->next;(5)while(P!=NULL)P=P->next;(6)while(Q->next!=NULL){P=Q;Q=Q->next};(7)while(P->next!=Q)P=P->next;(8)while(P->next->next!=Q)P=P->next;(9)while(P->next->next!=NULL)P=P->next;(10)Q=P;(11)Q=P->next;(12)P=L;(13)L=L->next;(14)free(Q);【14,3,3】对一个栈
7、,给定输入的顺序是A、B、C,则全部不可能的输出序列有不可能得到的输出序列有CAB。【15,3,3】.在栈顶指针为HS的链栈中,判定栈空的条件是 head->next==NULL 。【16,3,3】下列程序把十进制数转换为十六进制数,请填写合适的语句成分。voidconversion10_16(){InitStack(&s);收集于网络,如有侵权请联系管理员删除精品文档scanf(“%d”,&N);while(N){______Push(s,N%16)___;N=N/16;}while(!StackEmpt
8、y(s)){_____Pop(s,e);if(e<=9)printf(“%d”,e);elseprintf(“%c”,e-10+’A’);}}/*conversion*/【17,3,4】若用一个大小为6个元素的数组来实现循环队列,且当前rear=0和front=3。当从队列中删除一个元素,再加入两个元素后,rear和front的值分别是2和4。【18,3,4】堆栈和队列都是线性表,堆栈是___后进先出____的线
此文档下载收益归作者所有