数据结构作业标准答案.docx

  1. 1、本文档共16页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据结构作业标准答案 PAGE PAGE # 作者: 日期: 第二章 3.头指针:指向整个链表首地址的指针,标示着整个单链表的开始。 头结点:为了操作方便,可以在单链表的第一个结点之前附设一个结点,该结点的数据域可 以存储一些关于线性表长度的附加信息,也可以什么都不存。 首元素结点:线性表中的第一个结点成为首元素结点。 5. #define OK 1 #define ERROR 0 Int LDel(Seqlist *L,int i,int k) { int j; if(i<1||(i+k)>(L->last+2)) { printf(输入的i,k值不合法”); return ERROR; } if((i+k)==(L->last+2)) { L->last=i-2; ruturn OK; } else {for(j=i+k-1;jv=L->last;j++) elem[j-k]=elem[j]; L->last=L->last-k; return OK; } } 7. ( 1)void reverse(SeqList L) { int i,j,tmp; for(i=0, j=L .l ast; i<j; i++,j--) { tmp=a[i]; a[i]=a[j]; a[j]=tmp; } } (2) void reverse(Li nkList L)// 原地置换 { Lin kList old_head, n ew_head, temp; n ew_head =NULL; old_head=L-> n ext; while ( old_head ) { temp= old_head-> n ext; old_head-> n ext= n ew_head; n ew_head= old_head; old_head= temp; } L-> n ext= n ew_head; return( L ) } 8. #in clude"stdio.h" #i nclude"malloc.h" struct list { int data; struct list *n ext; }; void union list() { struct list *head,*p; int i=0; p1=head1; p2=head2; head=p=(struct list*)malloc(sizeof(struct list)); while(p1 && p2) { p->data=O; if(p1->data<=p2->data) { p->n ext=p1; } else { p->n ext=p2; } p=p1; p1=p1- >n ext; p=p2; p2=p2->n ext; } p-> next=p1?p1:p2; free(headl); free(head2); // //幕 12. typedef struct node { int power; //系数 //系数 //其他信息 //指向后继的指针 float coef; ElemType other; struct node *n ext; } PNode,*PolyLi nkedList; void PolyDis(PolyLi nkedList poly) //将poly表示的多项式链表分解为各含奇次幕或偶次幕项的两个循环链表 { PolyLi nkedList poly2=(PolyLi nkedList)malloc(sizeof(PNode)); 表示只含奇次幕的多项式 是只含奇次幕的多项式链表的尾指针 是只含偶次幕的多项式链表当前结点的前驱结点的 r2=poly2; r仁poly; 指针 // poly2 // r2 // r1 p=poly->n ext;while(p!=poly)if(p->power p=poly->n ext; while(p!=poly) if(p->power % 2) { r=p->n ext; r2->n ext=p; r2=p; //链表带头结点,p指向第一个元素 P=r; } else //处理偶次幕 //处理奇次幕 //暂存后继 //结点链入奇次幕链表 //尾指针后移 //恢复当前待处理结点 { r1- >n ext=p; r1=p; p=p->n ext; } r->n ext=poly2; r1- >n ext=poly; //构成循环链表 } // PolyDis 13. void Bin Add( Lin kList L ) { Node *q, *r, *temp, *s ; q = L_>n ext; r=L; while( q!=NULL ) { if ( q->data ==0)

文档评论(0)

kunpeng1241 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档