数据结构(c语言版)-线性表习题详解.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数 据 结 构 hongxiaomi@163.com ;线性表习题课;2、线性表的顺序表示和实现;(2)操作的实现;;Status LocateElem_sq(SqList L,ElemType e){ //在顺序表中查找第一个值为e的元素的位序 i=1; p=L.elem; while(i=L.length (*p++!=e)) ++i; if(i=L.length) return i; else return 0; } //LocateElem_sq;3、线性表的单链表存储结构;(2)操作的实现;Status ListInsert_L(LinkList L, int i ,ElemType e) { //在带头结点的单链表L中第i个位置之前插入元素e p=L; j=0; while(p ji-1){p=p-next;++j;} //寻找第i -1个结点 if(!p|| ji-1) return ERROR; s=(LinkList)malloc(sizeof(Lnode)); s-data=e; s-next=p-next; p-next=s; return OK; }// ListInsert_L ;Status ListDelete_L (LinkList L, int i, ElemType e) { //在带头结点的单链表L中,删除第i个元素,并用e返回 p=L; j=0; while(p-next ji-1){//寻找第i个结点,并令p指向其前驱 p=p-next; ++j; } if(!(p-next) || ji-1) return ERROR; q=p-next; p-next=q-next; e=q-data; free(q); return OK; }// ListDelete_L ;void CreateList_L(LinkList L,int n) { //逆位序输入n个元素的值,建立带头结点的单链表 L=(LinkList)malloc (sizeof)(LNode)); L-next=NULL; for(i=n;i0;i--){ p=(LinkList) malloc (sizeof)(LNode)); scanf(p-data); p-next=L-next; L-next=p; } }// CreatList_L;Status Insert_SqList(SqList va,int x)//把x插入递增有序表va中 { ??if(va.length==va.listsize) return (OVERFLOW); ????for(i=va.length-1;va.elem[i]xi=0;i--) ???? va.elem[i+1]=va.elem[i]; ?? va.elem[i+1]=x; va.length++; ?return OK; }//Insert_SqList ;2.14 试写一算法在带头结点的单链表结构上实现线性表操作 LENGTH(L)。;;三、习题讲解;例2、有一单链表(不带头结点)头指针为head,试设计一算法使得单链表插入x后仍递增有序。;Status Insert(Linklist head, Elemtype x){ //带头结点单链表插入x后仍递增有序 s=(LinkList)malloc(sizeof(Lnode)); s-data=x; s-next=NULL; q=head;p=head-next; if(p!=NULLp-datax) {q=p; p=p-next;} s-next=p; q-next=s; return OK; }//Insert;;//算法 void reverse(SqList L){ //顺序表的就地逆置 ? for(i=1,j=L.length-1;ij;i++,j--) { temp=L.elem[i]; L.elem[i]=L.elem[j]; L.elem[j]=temp; }//reverse;(2)链式存储结构—单链表;void?convert(linklist?head){?? //带头结点的单链表head就地逆置 ???LNode??*p,???*q;??????????? ???p=head-next

文档评论(0)

专注于电脑软件的下载与安装,各种疑难问题的解决,office办公软件的咨询,文档格式转换,音视频下载等等,欢迎各位咨询!

1亿VIP精品文档

相关文档