电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

线性表及多项式操作VIP免费

线性表及多项式操作_第1页
1/25
线性表及多项式操作_第2页
2/25
线性表及多项式操作_第3页
3/25
实验报告实验名称线性表及多项式的运算指导教师邹志强实验类型验证实验学时2+2实验时间2016.9.16一、实验目的和要求1.掌握线性表的两种基本存储结构及其应用场合:顺序存储和链接存储。2.掌握顺序表和链表的各种基本操作算法。3.理解线性表应用于多项式的实现算法。二、实验环境(实验设备)Dev-C++2三、实验原理及内容内容:1.参照程序2.1〜程序2.7,编写程序,完成顺序表的初始化、查找、插入、删除、输出、撤销等操作。2.已知代表头节点的单链表的类型定义,参照程序2.8~程序2.14,编写程序,完成带表头节点的单链表的初始化、查找、插入、删除、输出、撤销等操作。3.以第2题所示带表头节点的单链表为例,编写程序实现单链表的逆置操作(原单链表为(aO,a1,...an-1),逆置后为(an-1,an-2,...,a0),要求不引入新的存储空间。)4.以第2题所示带表头节点的单链表为存储结构,编写程序实现将单链表排序成为有序单链表的操作。5.已知带表头节点一元多项式的类型定义,编写程序实现一元多项式的创建、输出、撤销以及两个一元多项式相加和相乘的操作。3456-_inti;.一SeqListlist;Init(&list,10);for(i=0;i<10;i++)..Insert(&list,i-1,i);__Output(list);printf("\n");Delete(&list,O);__Output(list);..Destroy(&list);}调用结果:72•带表头节点单链表的基本运算单链表的类型定义(struct.h):typedefstructNode{intelement;〃结点的数据域structNode*link;〃结点的指针域}Node;typedefstruct{structNode*head;intn;}headerList;typedefintstatus;单链表的初始化(Init.c):statusInit(headerList*L){L->head=(Node*)malloc(sizeof(Node));if(!L->head)returnERROR;L->head->link=NULL;L->n=0;returnOK;}单链表的查找(Find.c):statusFind(headerListL,inti,int*x)8}9statusDelete(headerList*L,inti)intj;Node*p,*q;if(!L->n)returnERROR;if(i<0||i>L->n-1)returnERROR;q=L->head;for(j=0;jlink;p=q->link;//p指向aiq->link=p->link;〃从单链表中删除p所指向的结点free(p);〃释放p所指结点的存储空间L->n--;returnOK;}单链表的输出(Output.c):statusOutput(headerListL){Node*p;if(!L.n)//判断顺序表是否为空returnERROR;p=L.head->link;while(p)printf("%d",p->element);p=p->link;10returnOK;单链表的析构(Destroy.c):{Node*p;p=L->head->link;ftee(L->head);L->head=p;测试所用主函数(main.c):voidmain()inti;intx;headerListlist;Init(&list);〃对线性表初始化for(i=0;i<9;i++)Insert(&list,i-l,i);〃线性表中插入新元素printf("thelinklistis:");Output(list);Delete(&list,O);printf("\nthelinklistis:");Output(list);Find(list,O,&x);11〃printf("\nthevalueis:");〃printf("%d",1);Destroy(&list);}调用结果:单链表的基本操作和逆置是在一篇代码中,所以主函数中已包括逆置函数的调用,调用结果如图也包括了逆置结果。IthBlinklist15=012345678Ithelinklistis=12345678匣首后:87654321Frocessexitedafter1.297secondswithreturnvalue6请按任意键継參…曲叟狗拼音输入袪全3•单链表逆置操作statusNizhi(headerList*L)Node*p,*q,*r;p=L->head;一_q=P_>link;__while(q)r=q->link;I12q->link=p;p=q;q=r;__L->head->link->link=NULL;__L->head->link=p;__return0;}调用结果:F:傑擔结构代码\单链表£典thelinklistis:0123456?BthelinklistIs=12345678逆直后87G54321Pi'ocessexitedaftei*1=297secondswithretm'iniualueS请按任意犍继续-•-4•单链表排序操作(冒泡)#include#includetypedefstructnode{intelement;-_structnode*next;}Node,*LinkList;LinkListCreat(void)/*创建链表,输入数据,结束标志为当输入的数据为0*//*排序*13{_LinkListH,p,q;intn;n=0;p=q=(LinkList)malloc(sizeof(Node));printf("输入数据:(输入0标志着输入完成)\n");-_scanf("%d",&p->element);H=NULL;__while(p->element!=0)n=n+1;i«n==l)H=p;_else_._q_>next=p;q=p;p=(LinkList)malloc(sizeofNode));scanf("%d",&p->element);._q->next=NULL;__return(H);LinkListPaixu(L...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

线性表及多项式操作

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部