数据结构习题课学习教案.pptx
《数据结构习题课学习教案.pptx》由会员分享,可在线阅读,更多相关《数据结构习题课学习教案.pptx(42页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、会计学1数据结构数据结构(sh j ji u)习题课习题课第一页,共42页。有进步有进步(jnb)n n很多同学的算法写得更好了n n有些(yuxi)同学开始尝试自己写算法了第1页/共42页第二页,共42页。作业作业(zuy)2-1n n题目描述n n n n 编写算法Reverse(A,n),将顺序存储的线性表A=(a1,a2,an)转换(zhunhun)为A=(an,a2,a1),要求转换(zhunhun)过程中用尽可能少的辅助空间。第2页/共42页第三页,共42页。如果不限制辅助如果不限制辅助(fzh)空间空间n n辅助数组n n双下标i、j,同时(tngsh)向中间移动n n第3页/共
2、42页第四页,共42页。n n只需从线性表的第一个数据元素只需从线性表的第一个数据元素(yun s)(yun s)开始,将第开始,将第i i个数个数据元素据元素(yun s)(yun s)与第与第n-i+1n-i+1个数据元素个数据元素(yun s)(yun s)相交换即相交换即可。在这个过程中,可。在这个过程中,i i的变化范围是的变化范围是1 1到到 。a a1 1a a2 2a an-1n-1a an na an na an-1n-1a a2 2a a1 11+n1+n2+(n-2+(n-1)1)(n-1)+2(n-1)+2n+1n+1第4页/共42页第五页,共42页。参考答案参考答案算
3、法算法算法算法(sun f)Reverse(sun f)Reverse(sun f)Reverse(sun f)Reverse(A A A A,n.An.An.An.A)Reverse1.Reverse1.Reverse1.Reverse1.元素互换元素互换元素互换元素互换 FOR i=1 FOR i=1 FOR i=1 FOR i=1 TOTOTOTO DO DO DO DO Ai Ai Ai Ai An-i+1.An-i+1.An-i+1.An-i+1.第5页/共42页第六页,共42页。作业作业(zuy)情况情况n n错误最多的情况,交换终止位置(wi zhi)n n下标从1开始:n/2
4、(div(n/2)是错误的写法)n n下标从0开始:(n-1)/2n n讨论n为奇偶两种情况,写相同的代码n n不必要的特判(如n=0,n=1)n n有1位同学:1 (n+1)/2保存到数组B中,A向前窜,然后B中元素放到A的后面第6页/共42页第七页,共42页。2-3n n已知长度为n的线性表A采用顺序结构(jigu)存储,请写一算法,找出该线性表中值最小的元素的位置。第7页/共42页第八页,共42页。参考答案参考答案算法FMIN(A,n.pos)/*找顺序表A中最小元素的位置(wi zhi)*/FM1初始化pos 1FM2 循环FOR i 2 TO n DO IF(AiApos)pos i
5、.第8页/共42页第九页,共42页。作业作业(zuy)情况情况n n最多的问题(wnt):不求位置,而是求最小值n n有些同学求最小值使用第1章的BS第9页/共42页第十页,共42页。2-6n n分析单链表中删除(shnch)操作的时间复杂度第10页/共42页第十一页,共42页。参考答案参考答案n n单链表类中的删除操作delete(k,item),k表示待删元素位置,item保存待删元素的值n n定位第k个元素,需要时间k-1.1=k maxk)THEN RETURN.IF(minkmaxk)THEN RETURN.D2 D2 边定位边删除边定位边删除边定位边删除边定位边删除 pre hea
6、d.p next(head).pre head.p next(head).while(pNULL)(while(pNULL)(IF(data(p)mink)THEN(pre p.pnext(p).).IF(data(p)=mink AND data(p)=mink AND data(p)maxk)THEN BREAK.IF(data(p)maxk)THEN BREAK.)第19页/共42页第二十页,共42页。同学同学(tng xu)的较赞做法(仿的较赞做法(仿车雅玲等)车雅玲等)void SLList:Delete(T minv,T maxv)void SLList:Delete(T minv
7、,T maxv)SLNode*p=head,q;SLNode*p=head,q;while(p-next!=0)/while(p-next!=0)/定位定位minvminv前驱前驱(qinq)(qinq)if(p-next-dataminv)break;if(p-next-dataminv)break;p=p-next;p=p-next;q=p-next;q=p-next;while(q!=0&q-data data next=q-next;p-next=q-next;delete q;delete q;q=p-next;q=p-next;第20页/共42页第二十一页,共42页。作业作业(zu
8、y)情况情况n n最多的情况是抄了一个网上算法。正确但繁琐n n自己写的同学能有交作业的一半,赞一个n n常见问题:定位到minv结点,不是前驱,链会删断n n不必要的特判:最后(zuhu)一个元素是否小于minv。做这个特判的代价是O(n)第21页/共42页第二十二页,共42页。2-13n n设有一个双向循环链表,每个结点中除有prior、data和next三个域外,还增设一个访问频度域freq。在链表被起用之前,频度域freq的值均初始化为零。而每当(mi dn)对链表进行一次LOCATE(L,x)的操作后,被访问的结点(即元素值等于x的结点)中的频度域freq的值增1,同时调整链表中结点
9、之间的次序,使其按访问频度非递增的次序顺序排列,以便始终保持被频繁访问的结点总是靠近表头结点。试编写符合上述要求的LOCATE操作的方法。第22页/共42页第二十三页,共42页。分析分析(fnx)n nLOCATE(L,x)的理解n n顺序存储?n n返回值是什么(shn me)n n按照教材来第23页/共42页第二十四页,共42页。算法算法算法算法 Locate(L,x.L)Locate(L,x.L)/*/*在双向循环链中定位值为在双向循环链中定位值为在双向循环链中定位值为在双向循环链中定位值为x x结点,修改结点,修改结点,修改结点,修改freqfreq并按递减序调整,删并按递减序调整,删
10、并按递减序调整,删并按递减序调整,删除第一个碰到的除第一个碰到的除第一个碰到的除第一个碰到的x x,有哨兵,有哨兵,有哨兵,有哨兵(shobng)(shobng)变量变量变量变量*/*/L1L1定位值为定位值为定位值为定位值为x x的元素的元素的元素的元素,修改修改修改修改freqfreq p next(head(L).p next(head(L).WHILE(phead(L)&data(p)x)p next(p).WHILE(phead(L)&data(p)x)p next(p).IF(p=head(L)THEN RETURN.IF(p=head(L)THEN RETURN.inc(freq
11、(p).inc(freq(p).L2 L2 递减序调整递减序调整递减序调整递减序调整 q p./q p./找找找找freqfreq大于等于大于等于大于等于大于等于p p的结点的结点的结点的结点q q WHILE(qhead(L)AND freq(prior(q)freq(p)DO q WHILE(qhead(L)AND freq(prior(q)freq(p)DO q prior(q).prior(q).prior(next(p)prior(p).next(prior(p)=next(p)./prior(next(p)prior(p).next(prior(p)=next(p)./删删删删 p
12、rior(p)q.next(p)next(q)./prior(p)q.next(p)next(q)./插插插插 prior(next(p)p.next(prior(p)p.).prior(next(p)p.next(prior(p)p.).第24页/共42页第二十五页,共42页。算法算法算法算法 Locate(L,x.L)Locate(L,x.L)/*/*在双向循环链中定位值为在双向循环链中定位值为在双向循环链中定位值为在双向循环链中定位值为x x结点,修改结点,修改结点,修改结点,修改freqfreq并按递减并按递减并按递减并按递减(dji(dji n)n)序调整,删除所有碰到的序调整,删除
13、所有碰到的序调整,删除所有碰到的序调整,删除所有碰到的x x,有哨兵变量,有哨兵变量,有哨兵变量,有哨兵变量*/*/L1L1定位值为定位值为定位值为定位值为x x的元素的元素的元素的元素,修改修改修改修改freqfreq p next(head(L).p next(head(L).WHILE(phead(L)DO(WHILE(phead(L)DO(IF(data(p)!=x)THEN(p next(p).CONTINUE.)IF(data(p)!=x)THEN(p next(p).CONTINUE.)inc(freq(p).t next(p).inc(freq(p).t next(p)./递减
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 习题 学习 教案
限制150内