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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

实验三 实现单链表的各种运算.docx

1、实验三 实现单链表的各种运算实验三 实现单链表的各种运算姓名 尹亮 学号:2009131334 班级:09计算机三班一、实验目的 了解单链表表的结构特点及有关概念,掌握单链表的各种基本操作算法思想及其实现。 二、实验内容 编写一个程序,实现顺序表的各种基本运算: 1、初始化单链表; 2、单链表的插入; 3、单链表的输出; 4、求单链表的长度 5、判断单链表是否为空; 6、输出单链表的第i位置的元素 ; 7、在单链表中查找一个给定元素在表中的位置; 8、单链表的删除; 9、释放单链表三、实验要点及说明 单链表是线性表的链式存储结构的一种形式,它用一组地址任意的存储单元存放线性表的各个元素。 具体

2、程序如下:#include#includetypedef char elemtype;typedef struct LNode elemtype data; struct LNode *next;linklist;void initlist(linklist *&L) L=(linklist *)malloc(sizeof(linklist); L-next=NULL;void destroylist(linklist *&L) linklist *p=L,*q=p-next; while (q!=NULL) free(p); p=q; q=p-next; free(p); int liste

3、mpty(linklist *L) return(L-next=NULL);int listlength(linklist *L) linklist *p=L;int i=0; while (p-next!=NULL) i+; p=p-next; return(i);void displist(linklist *L) linklist *p=L-next; while (p!=NULL) printf(%c,p-data); p=p-next; printf(n);int getelem(linklist *L,int i,elemtype &e) int j=0; linklist *p=

4、L; while (jnext; if(p=NULL) return 0; else e=p-data; return 1; int locateelem(linklist *L,elemtype e) linklist *p=L-next; int n=1; while(p!=NULL&p-data!=e) p=p-next; n+; if(p=NULL) return(0); else return(n);int listinsert(linklist *&L,int i,elemtype e) int j=0;linklist *p=L,*s; while (jnext; if(p=NU

5、LL) return 0; else s=(linklist * )malloc(sizeof(linklist); s-data=e; s-next=p-next; p-next=s; return 1; int listdelete(linklist *&L,int i,elemtype &e) int j=0; linklist *p=L,*q; while(jnext; if(p=NULL) return 0; else q=p-next; if(q=NULL)return 0; e=q-data; p-next=q-next; free(q); return 1; void main

6、() linklist *h; elemtype e; printf(1)初始化单链表hn); initlist(h); printf(2)依次采用尾插法插入a,b,c元素n); listinsert(h,1,a); listinsert(h,1,b); listinsert(h,1,c); listinsert(h,1,d); listinsert(h,1,e); printf(3)输出单链表h:); displist(h); printf(4)单链表h的长度=%dn,listlength(h); printf(5)单链表h为%sn,(listempty(h)?空:非空); getelem(

7、h,3,e); printf(6)单链表h的第3个元素=%cn,e); printf(7)元素a的位置=%dn,locateelem(h,a); printf(8)在第4个元素位置上插入f元素n); listinsert(h,4,f); printf(9)输出单链表h:); displist(h); printf(10)删除h的第3个元素n); listdelete(h,3,e); printf(11)输出单链表h:); displist(h); printf(12)释放单链表hn); destroylist(h);四,测试与结果结果:五,算法思想:单链表中重要的也是插入节点的运算,即将值为x的新节点插入到第i个节点的位置,现在单链表中找到第i-1个节点,再在其后插入新的节点,假设要在单链表的两个数据分别为a和b的结点之间插入一个数据域为x的结点。P是指向数据域a的结点,s指向数据域为x的结点,为了插入结点*s需要修改结点*p中的指针域,令其指向结点*s而结点s中的指针域应指向结点b,从而实现3个节点之间的逻辑关系的变化。六,心得体会:通过这次试验,我知道了什么事情都得自己动手去思考,去理解,把这些东西都化为自己脑子里的东西,慢慢脱离书本,我知道现在自己的基础不好,但是我相信,慢慢的会变好的!

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

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