欢迎来到天天文库
浏览记录
ID:27699529
大小:656.74 KB
页数:40页
时间:2018-12-05
《《数据结构》耿国华版算法习题》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、数据结构》耿国华版算法习题第一部分线性表1./*冇序表上插入新元素*/typedefintdatatype;#definemaxsize1000typedefstruct{datatypelist[maxsize];intsize;/**/}sequenlist;/*顺序表类型定义*/intins2_4_1(sequenlist*L,datatypex)/*从后向前比较*/{inti;if(L->size>=maxsize){printf(”溢出");return0;}else{for(i=L->size-1;i>=0;i-)
2、if(xdata[i])L->data[i+1]=L->data[i];elsebreak;/*以上for循环也可以改为:for(i=L->size-1;i>=0&&xdata[i];i--)L->data[i+1]=L->data[i];*/L->data[i+1]=x;L->last++;return1;}}ins2_4_2(sequenlist*L,datatypex)/*从前向后比较*/{inti,j;if(L->size>=maxsize){printfC•溢出");return0;}else{for
3、(i=0;i<=L->last;i++)if(x<=L->data[i])break;/*以上for循环也可以改为:for(i=0;i<=L->last&&x>L->data[i];i++);*/for(j=L->last;j>=l;卜)L->data[j+1]=L->data[j];L->data[i]=x;L->last++;return1;}}2:删除顺序表屮,从第i个元素开始的k个元素。intDELETE(seqlist*L,inti,intk)/*seqlist顺序表类型*/{intj;if(i>L->last)/*
4、起始位置超出表长,无法删除*/{printf("error”);return0;}else{if(i+k-2>L->last)/*从起始位置开始不足K个元素,则将起始位置到表尾全部删除*/{L->last=i-2;/*此时不进行元素的移动,禝盖*/}else{for(j=i+k-1;j<=L->last;j++)/*i+k-i下标的元素褪遍i-i,i+k下标元素覆盏i,以此类推,直到L->last*/L->data[j-k]=L->data[j];L->last=L->last-k;}return1;}}3/*删除值递增的单链
5、表中,所有大于mink且小于maxk的元素*/ch2_6(linklistH,intmink,intmaxk)/*H为带头结点的单链表*/{linklistp,q;if(mink<=maxk){P=H;while(p->next!=NULL){if(p->next->data>=mink&&p->next->datanext;p->next=q->next;free(q);}elsep=p->next;}}else{P=H;while(p->next!=NULL){if(p->next->data>=m
6、ink
7、
8、p->next->datanext;p->next=q->next;什ee(q);}elsep=p->next;}}}4ch2_7a(seqlist*1)/*顺序存储*/{intI,temp;for(i=0;i<=l->last/2;i++){temp=l->data[i];l->data[i]=l->data[l->last-i];l->data[l->last-i]=temp;}}/*带尖结点单链表逆序*/typedefintdatatype;typedefstructnode{datat
9、ypedata;structnode*next;flinklist;nixu(linklistI){linklistp,q;q=l->next;l->next=NULL;while(q!=NULL){p=q;q=q->next;p->next=l->next;l->next=p;}}5:非递减有序的表A,B,合并成非递增有序的表C。(存储结构,单链表)方法:依次从A或B表中得到敁小值,使用前插法生成表C。typedefstructnode{intdata;structnode*next;}NODE,*LinkList;Link
10、Listunion(LinkListA,LinkListB){LinkListC;LinkListpa,pb,min;C=malloc(sizeof(NODE));C->next=NULL;pa=A->next;pb=B->next;while(pa!=NULL&&pb!=N
此文档下载收益归作者所有