ds第二章_课后习题答案

ds第二章_课后习题答案

ID:26651963

大小:78.91 KB

页数:9页

时间:2018-11-28

ds第二章_课后习题答案_第1页
ds第二章_课后习题答案_第2页
ds第二章_课后习题答案_第3页
ds第二章_课后习题答案_第4页
ds第二章_课后习题答案_第5页
资源描述:

《ds第二章_课后习题答案》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、第二章线性表2.1填空题(1)一半插入或删除的位置(2)静态动态(3)一定不一定(4)头指针头结点的next前一个元素的next2.2选择题(1)A(2)DAGKHDAELIAFIFA(IDA)(3)D(4)D(5)D2.3头指针:在带头结点的链表中,头指针存储头结点的地址;在不带头结点的链表中,头指针存放第一个元素结点的地址;头结点:为了操作方便,在第一个元素结点前申请一个结点,其指针域存放第一个元素结点的地址,数据域可以什么都不放;首元素结点:第一个元素的结点。2.4已知顺序表L递增有序,写

2、一算法,将X插入到线性表的适当位置上,以保持线性表的有序性。voidInserList(SeqList*L,ElemTypex){inti=L->last;if(L->last>=MAXSIZE-1)returnFALSE;//顺序表已满while(i>=0&&L->elem[i]>x){L->elem[i+1]=L->elem[i];i--;}L->elem[i+1]=x;L->last++;}2.5删除顺序表中从i开始的k个元素intDelList(SeqList*L,inti,intk){

3、intj,l;if(i<=0

4、

5、i>L->last){printf("TheInitialPositionisError!");return0;}if(k<=0)return1;/*NoNeedtoDelete*/if(i+k-2>=L->last)L->last=L->last-k;/*modifythelength*/for(j=i-1,l=i+k-1;llast;j++,l++)L->elem[j]=L->elem[l];L->last=L->last-k;return1;}2.6

6、已知长度为n的线性表A采用顺序存储结构,请写一时间复杂度为O(n)、空间复杂度为O(1)的算法,删除线性表中所有值为item的数据元素。[算法1]voidDeleteItem(SeqList*L,ElemTypeitem){inti=0,j=L->last;while(ielem[i]!=item)i++;while(ielem[i]==item)j--;if(ielem[i]=L->elem[j];i++;j--;}}L->las

7、t=i-1;}[算法2]voidDeleteItem(SeqList*L,ElemTypee){inti,j;i=j=0;while(L->elem[i]!=e&&i<=L->last)i++;j=i+1;while(j<=L->last){while(L->elem[j]==e&&j<=L->last)j++;if(j<=L->last){L->elem[i]=L->elem[j];i++;j++;}}L->last=i-1;}2.7编写算法,在一非递减的顺序表L中,删除所有值相等的多余元素。

8、要求时间复杂度为O(n),空间复杂度为O(1)。 voidDeleteRepeatItem(SeqList*L){inti=0,j=1;while(j<=L->last){if(L->elem[i]==L->elem[j])j++;else{L->elem[i+1]==L->elem[j];i++;j++;}}L->last=i;}2.8已知线性表中的元素(整数)以值递增有序排列,并以单链表作存储结构。试写一高效算法,删除表中所有大于mink且小于maxk的元素(若表中存在这样的元素),分析你的

9、算法的时间复杂度。voidDelData(LinkListL,ElemTypemink,ElemTypemaxk){Node*p=L->next,*pre=L;while(!p&&p->data<=mink)//寻找开始删除的位置{pre=p;p=p->next;}while(p){if(p->data>maxk)break;else{pre->next=p->next;free(p);p=pre->next;}}}T(n)=O(n);2.9试分别以不同的存储结构实现线性表的就地逆置算法,即在原

10、表的存储空间将线性表(a1,a2...,an)逆置为(an,an-1,...,a1)。(1)以一维数组作存储结构。(2)以单链表作存储结构。(略)(1)voidReverseArray(ElemTypea[],intn){inti=0,j=n-1;ElemTypet;while(inext;L->next=NULL;while(p!=NULL){q=p->next;p

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。