数据结构(C语言版)习题集答案 第二章 线性表.doc

数据结构(C语言版)习题集答案 第二章 线性表.doc

ID:52296889

大小:49.50 KB

页数:14页

时间:2020-03-26

数据结构(C语言版)习题集答案 第二章 线性表.doc_第1页
数据结构(C语言版)习题集答案 第二章 线性表.doc_第2页
数据结构(C语言版)习题集答案 第二章 线性表.doc_第3页
数据结构(C语言版)习题集答案 第二章 线性表.doc_第4页
数据结构(C语言版)习题集答案 第二章 线性表.doc_第5页
资源描述:

《数据结构(C语言版)习题集答案 第二章 线性表.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第二章线性表2.10StatusDeleteK(SqList&a,inti,intk)//删除线性表a中第i个元素起的k个元素{  if(i<1

2、

3、k<0

4、

5、i+k-1>a.length)returnINFEASIBLE;  for(count=1;i+count-1<=a.length-k;count++)//注意循环结束的条件    a.elem[i+count-1]=a.elem[i+count+k-1];  a.length-=k;  returnOK;}//DeleteK2.11StatusInsert_SqList(S

6、qList&va,intx)//把x插入递增有序表va中{  if(va.length+1>va.listsize)returnERROR;  va.length++;  for(i=va.length-1;va.elem[i]>x&&i>=0;i--)    va.elem[i+1]=va.elem[i];  va.elem[i+1]=x;  returnOK;}//Insert_SqList2.12intListComp(SqListA,SqListB)//比较字符表A和B,并用返回值表示结果,值为正,表示A>B;值为负,表示

7、A

8、

9、B.elem[i];i++)    if(A.elem[i]!=B.elem[i])returnA.elem[i]-B.elem[i];  return0;}//ListComp2.13LNode*Locate(LinkListL,intx)//链表上的元素查找,返回指针{  for(p=l->next;p&&p->data!=x;p=p->next);  returnp;}//Locate2.14intLength(LinkListL)//求链表的长度{  f

10、or(k=0,p=L;p->next;p=p->next,k++);  returnk;}//Length2.15voidListConcat(LinkListha,LinkListhb,LinkList&hc)//把链表hb接在ha后面形成链表hc{  hc=ha;p=ha;  while(p->next)p=p->next;  p->next=hb;}//ListConcat2.16见书后答案.2.17StatusInsert(LinkList&L,inti,intb)//在无头结点链表L的第i个元素之前插入元素b{  p=L

11、;q=(LinkList*)malloc(sizeof(LNode));  q.data=b;  if(i==1)  {    q.next=p;L=q;//插入在链表头部  }  else  {    while(--i>1)p=p->next;    q->next=p->next;p->next=q;//插入在第i个元素的位置  }}//Insert2.18StatusDelete(LinkList&L,inti)//在无头结点链表L中删除第i个元素{  if(i==1)L=L->next;//删除第一个元素  else  

12、{    p=L;    while(--i>1)p=p->next;    p->next=p->next->next;//删除第i个元素  }}//Delete2.19StatusDelete_Between(Linklist&L,intmink,intmaxk)//删除元素递增排列的链表L中值大于mink且小于maxk的所有元素{  p=L;  while(p->next->data<=mink)p=p->next;//p是最后一个不大于mink的元素  if(p->next)    //如果还有比mink更大的元素  { 

13、   q=p->next;    while(q->datanext;//q是第一个不小于maxk的元素    p->next=q;  }}//Delete_Between2.20StatusDelete_Equal(Linklist&L)//删除元素递增排列的链表L中所有值相同的元素{  p=L->next;q=p->next;//p,q指向相邻两元素  while(p->next)  {    if(p->data!=q->data)    {      p=p->next;q=p->next;//当相邻

14、两元素不相等时,p,q都向后推一步    }    else    {      while(q->data==p->data){free(q);q=q->next;}      p->next=q;p=q;q=p->next;//当相邻元素相等时

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

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

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