ImageVerifierCode 换一换
格式:DOCX , 页数:12 ,大小:158.19KB ,
资源ID:5821096      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/5821096.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(顺序表和单链表实验报告.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

顺序表和单链表实验报告.docx

1、顺序表和单链表实验报告数据结构实验报告一、顺序表操作验证1. 实验目的 掌握线性表的顺序存储结构; 验证顺序表及其基本操作的实现; 掌握数据结构及算法的程序实现的基本方法。2. 实验内容 建立含有若干个元素的顺序表; 对已建立的顺序表实现插入、删除、查找等基本操作。3.设计与编码#include#include#includestruct LinearList int *list; int size;int MaxSize;typedef struct LinearList LIST;void InitList(LIST *L,int ms) if(L-list=(int*)malloc(ms

2、 *sizeof(int)=NULL) printf(内存申请错误!n); exit(1); L-size=0; L-MaxSize=ms;int InsertList(LIST *L,int item,int rc) int i; if(L-size=L-MaxSize) return-1; if(rcL-size) rc=L-size; for(i=L-size-1;i=rc;i-) L-listi+1=L-listi; L-listrc=item; L-size+; return 0;void OutputList(LIST *L) int i; for(i=0;isize;i+) pr

3、intf(%d ,L-listi); printf(n);int FindList(LIST *L,int item) int i; for(i=0;isize;i+) if(item=L-listi) return i; return -1;int DeleteList1(LIST *L,int item) int i,n; for(i=0;isize;i+) if(item=L-listi) break; if(isize) for(n=i;nsize-1;n+) L-listn=L-listn+1; L-size-; return i; return -1;int DeleteList2

4、(LIST *L,int rc) int i,n; if(rc=L-size) return -1; for(n=rc;nsize-1;n+) L-listn=L-listn+1; L-size-; return 0;void main()LIST LL;int i,r;printf(list addr=%ptsize=%dtMaxSize=%dn,LL.list,LL.size,LL.MaxSize);InitList(&LL,100);printf(list addr=%ptsize=%dtMaxSize=%dn,LL.list,LL.size,LL.MaxSize); while(1)

5、printf(请输入元素值,输入0结束插入操作:); fflush(stdin); scanf(%d,&i); if(i=0) break; printf(请输入插入位置:); scanf(%d,&r); InsertList(&LL,i,r-1); printf(线性表为:); OutputList(&LL); while(1) printf(请输入查找元素值,输入0结束查找操作:); fflush(stdin); scanf(%d,&i); if(i=0) break; r=FindList(&LL,i); if(r0) printf(没找到n); else printf(有符合条件的元素

6、,位置为:%dn,r+1); while(1) printf(请输入删除元素值,输入0结束查找操作:); fflush(stdin); scanf(%d,&i); if(i=0) break; r=DeleteList1(&LL,i); if(r0) printf(没找到n); else printf(有符合条件的元素,位置为:%dn线性表为:,r+1); OutputList(&LL); while(1) printf(请输入删除元素位置,输入0结束查找操作:); fflush(stdin); scanf(%d,&r); if(r=0) break; i=DeleteList2(&LL,r-

7、1); if(i0) printf(位置越界n); else printf(线性表为:); OutputList(&LL); 4.运行结果二、 单链表操作验证1. 实验目的 掌握线性表的链式存储结构; 验证单链序表及其基本操作的实现; 进一步掌握数据结构及算法的程序实现的基本方法。2. 实验内容 用头插法(或尾插法)建立带头结点的单链表; 对已建立的单链表实现插入、删除、查找等基本操作。3.设计与编码#include#includetypedef struct list int data; struct list *next;LIST;void InitList(LIST *p) *p=NUL

8、L;void InsertList1(LIST *p,int item,int rc) int i; LIST *u,*q,*r; u=(LIST *)malloc(sizeof(LIST); u-data=item; for(i=0,r=*p;inext; if(r=*p) *p=u; else q-next=u; u-next=r;void InsertList2(LIST *p,int item) LIST *u,*q,*r; u=(LIST *)malloc(sizeof(LIST); u-data=item; for(r=*p;r!=NULL&r-datanext); if(r=*p

9、) *p=u; else q-next=u; u-next=r;int DeleteList(LIST *p,int item) LIST *q,*r; q=*p;r=q; if (q=NULL) return 1; if(q-data=item) *p=q-next; free (r); return 0; for(;q-data!=item&q-next!=NULL;r=q,q=q-next); if(q-data=item) r-next=q-next; free(q); return 0; return 1;int FindList(LIST *p,int item) int i; f

10、or(i=1;p-data!=item&p!=NULL;p=p-next,i+); return(p=NULL)?-1:i;void OutputList(LIST *p) while(p!=NULL) printf(%4d,p-data); p=p-next; printf(n);void FreeList(LIST *p) LIST*q,*r; for(q=*p;q!=NULL;) r=q; q=q-next; free(r); *p=NULL;int main() LIST *p; int op,i,rc; InitList(&p); while(1) printf(请选择操作 1:指定

11、位置追加 2:升序追加 3:查找结点n); printf( 4:删除结点 5:输出结点 6:清空链表 0:退出n); fflush(stdin); scanf( %d,&op); switch(op) case 0: return -1; case 1: printf(请输入新增结点键值和位置:); scanf( %d%d,&i,&rc); InsertList1(&p,i,rc); break; case 2: printf(请输入新增结点键值:); scanf(%d,&i); InsertList2(&p,i); break; case 3: printf(请输入要查找结点的键值:); s

12、canf(%d,&i); rc=FindList(p,i); if(rc0) printf( 位置为%dn,rc); else printf( 没找到n); break; case 4: printf(请输入要删除结点的键值:); scanf(%d,&i); rc=DeleteList(&p,i); if(rc=0) printf( 删除成功n,rc); else printf( 没找到n); break; case 5: printf(链表内容为:); OutputList(p); break; case 6: FreeList(&p); break; 4.运行结果三、心得体会在本次实验中,让我对线性表和链表有了充分的理解,也对数据结构这门课程有了进一步的理解。同时,我也认识到了c语言的确是编程的基础,希望自己把基础加以巩固。调试过程中总是遇到一些小问题,如漏了分号,还有就是不知一些代码如何写,通过看书和上网查资料解决了。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1