欢迎来到天天文库
浏览记录
ID:60768531
大小:1.35 MB
页数:105页
时间:2020-12-16
《最新数据结构期末重点复习题教案资料.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、作业:1、简述逻辑结构和存储结构的联系?2、数据结构和数据类型有什么区别?3、分析以下算法的时间复杂度voidfunc(intn){inti=0,s=0;while(s2、ypex){inti=0,j;if(L.length+1>L.listsize)p24while(i=L.elem[i])i++;for(j=L.length-1;j>=i;j--)L.elem[j+1]=L.elem[j];L.elem[i]=x;L.length++;}10/8/20213__________________________________________________顺序表算法设计练习:试写一个算法,实现顺序表的就地逆置,即利用原表的存储空间将线性表。(a1,a2,…,an)逆置为(an,an-1,…,a1)。10/8/20214_______3、___________________________________________参考算法:Voidreverse(Sqlist&L){inti=0,j=L.length-1;while(iL.elem[j];i++;j--;}}10/8/20215__________________________________________________顺序表算法设计练习:试设计一个高效的算法,删除线性表L中所有值为x的元素。10/8/20216__________________________________________________参考算法:Voidd4、eletelist(Sqlist&L,ElemTypex){intcount=0;for(i=0;i<=L.length-1;i++)if(L.elem[i]==x)count++;elseL.elem[i-count]=L.elem[i];}10/8/20217__________________________________________________链表算法设计练习:设计一个算法删除带头结点的单链表L中值为x的结点的直接前驱结点。10/8/20218__________________________________________________参考算法:Intdelx(Link5、list&L,ElemTypex){LinkListp=L,q=p->next,r;If(q!=Null)r=q->next;Elsereturn0;While(r!=Null&&r->data!=x){p=q;q=r;r=r->next;}if(r!=Null){p->next=q->next;free(q);}elsereturn0;return1;}10/8/20219__________________________________________________链表算法设计练习:设计一个算法,在带头结点的单链表head中删除一个data域值最小的结点,假设该结点唯一。10/8/206、2110__________________________________________________参考算法:VoidDelMinNode(Linklisthead){Linklistp=head->next,pre=head;Linklistminp,minpre;Elemtypemin=p->data;minp=p;minpre=pre;While(p!=NULL){If(p->datadata){min=p->data;minp=p;minpre=pre;}pre=p;p=p->next;}minpre->next=minp->next;Free(minp);}107、/8/202111__________________________________________________1、假设表达式中允许包含3种括号:圆括号、方括号和大括号。设计一个算法采用顺序栈判断表达式中的括号是否正确配对。Intmatch(charexp[],intn){charst[Maxsize];inttop=-1;inti=0,tag=1;while(i
2、ypex){inti=0,j;if(L.length+1>L.listsize)p24while(i=L.elem[i])i++;for(j=L.length-1;j>=i;j--)L.elem[j+1]=L.elem[j];L.elem[i]=x;L.length++;}10/8/20213__________________________________________________顺序表算法设计练习:试写一个算法,实现顺序表的就地逆置,即利用原表的存储空间将线性表。(a1,a2,…,an)逆置为(an,an-1,…,a1)。10/8/20214_______
3、___________________________________________参考算法:Voidreverse(Sqlist&L){inti=0,j=L.length-1;while(iL.elem[j];i++;j--;}}10/8/20215__________________________________________________顺序表算法设计练习:试设计一个高效的算法,删除线性表L中所有值为x的元素。10/8/20216__________________________________________________参考算法:Voidd
4、eletelist(Sqlist&L,ElemTypex){intcount=0;for(i=0;i<=L.length-1;i++)if(L.elem[i]==x)count++;elseL.elem[i-count]=L.elem[i];}10/8/20217__________________________________________________链表算法设计练习:设计一个算法删除带头结点的单链表L中值为x的结点的直接前驱结点。10/8/20218__________________________________________________参考算法:Intdelx(Link
5、list&L,ElemTypex){LinkListp=L,q=p->next,r;If(q!=Null)r=q->next;Elsereturn0;While(r!=Null&&r->data!=x){p=q;q=r;r=r->next;}if(r!=Null){p->next=q->next;free(q);}elsereturn0;return1;}10/8/20219__________________________________________________链表算法设计练习:设计一个算法,在带头结点的单链表head中删除一个data域值最小的结点,假设该结点唯一。10/8/20
6、2110__________________________________________________参考算法:VoidDelMinNode(Linklisthead){Linklistp=head->next,pre=head;Linklistminp,minpre;Elemtypemin=p->data;minp=p;minpre=pre;While(p!=NULL){If(p->datadata){min=p->data;minp=p;minpre=pre;}pre=p;p=p->next;}minpre->next=minp->next;Free(minp);}10
7、/8/202111__________________________________________________1、假设表达式中允许包含3种括号:圆括号、方括号和大括号。设计一个算法采用顺序栈判断表达式中的括号是否正确配对。Intmatch(charexp[],intn){charst[Maxsize];inttop=-1;inti=0,tag=1;while(i
此文档下载收益归作者所有