实验指导书(2007级)

实验指导书(2007级)

ID:35216484

大小:108.00 KB

页数:12页

时间:2019-03-21

实验指导书(2007级)_第1页
实验指导书(2007级)_第2页
实验指导书(2007级)_第3页
实验指导书(2007级)_第4页
实验指导书(2007级)_第5页
资源描述:

《实验指导书(2007级)》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、数据结构实验指导书适用专业:网络工程系网络、信安专业指导教师:王祖俪实验一:线性表的基本操作实验目的:掌握线性表的基本操作:插入、删除、查找以及线性表合并等运算在顺序存储结构的运算。能从实际问题中抽象出线性表结构及其运算的模型实验课时:3课时实验要求:1.掌握线性表的顺序存储的基本运算的算法和程序2.掌握线性表链式存储的基本运算的算法3.根据算法写出对应程序(使用语言没有硬性规定,但推荐使用C)4.调试成功,并保存程序源代码,以备检查实验内容:1.设计——实现用户通过键盘输入一组数,并输入一个需要插入的数,和插入的位置,完成整个插入。例,输入1,2,3,4再输入5,3。

2、最后程序运行结果为1,2,5,3,4。1)先写出完成该操作的算法或执行流程2)以程序方式实现算法3)数的长短自行先定义,可以用数组存储。4)注意插入位置的判断2.验证——上机实现链表的基本操作程序,并结合对应的算法,了解链表的工作情况。#include#include#includestructmylist{intdata;structmylist*next;};structmylist*createlist(void){intx;structmylist*s,*q,*h;h=(structmylist*)mall

3、oc(sizeof(structmylist));h->next=NULL;q=h;printf("inputnumber:");scanf("%d",&x);while(x!=0){s=(structmylist*)malloc(sizeof(structmylist));s->data=x;q->next=s;printf("inputthenumber:");scanf("%d",&x);s->next=NULL;q=s;}return(h);}intputlist(structmylist*head){inti=0;if(head->next==NULL){re

4、turn0;}while(head->next!=NULL){i++;printf("the%dnumberinlistis:%d",i,head->next->data);head=head->next;}return1;}voidmain(){structmylist*my,*a;my=createlist();if(putlist(my)==0)printf("theinputlistisempty!");while(my->next!=NULL){a=my;my=my->next;free(a);}printf("over,pressanykeytoend"

5、);getch();}3.将第1题所描述问题用链表方式实现,并以实验报告形式提交(报告2)4.验证——上机实现一元多项式的加法程序,并结合算法理解链表的工作过程和基本操作的实现。#include#include#include#defineLENsizeof(node)typedefstructpolynode/*用单链表存储多项式的结点结构*/{intcoef;/*多项式的系数*/intexp;/*指数*/structpolynode*next;/*它又指向structpolynode类型的数据,以此建立链表*

6、/}node;/*意即node*与list同为结构指针类型*/node*create(void)/*用尾插法建立一元多项式的链表的函数*/{node*h,*r,*s;intc,e;h=(node*)malloc(LEN);/*建立多项式的头结点,为头结点分配存储空间*/r=h;/*r指针始终动态指向链表的当前表尾,以便于做尾插入,其初值指向头结点*/printf("coef:");scanf("%d",&c);/*输入系数*/printf("exp:");scanf("%d",&e);/*输入指数*/while(c!=0)/*输入系数为0时,表示多项式的输入结束*/{s

7、=(node*)malloc(LEN);/*申请新结点*/s->coef=c;/*申请新结点后赋值*/s->exp=e;/*申请新结点后赋值*/r->next=s;/*做尾插,插入新结点*/r=s;/*r始终指向单链表的表尾*/printf("coef:");scanf("%d",&c);printf("exp:");scanf("%d",&e);}r->next=NULL;/*将表的最后一个结点的next置NULL,以示表结束*/return(h);}voidpolyadd(node*polya,node*polyb)/*一元多项式相加

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

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

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