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

加入VIP,省得不是一点点
 

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

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

下载须知

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

版权提示 | 免责声明

本文(单链表的定义及基本操作.doc)为本站会员(11****ws)主动上传,文客久久仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知文客久久(发送邮件至hr@wenke99.com或直接QQ联系客服),我们立即给予删除!

单链表的定义及基本操作.doc

1、1单链表的定义及基本操作 一、实验目的、意义(1)理解线性表中带头结点单链表的定义和逻辑图表示方法。(2)熟练掌握单链表的插入,删除和查询算法的设计与实现。(3)根据具体问题的需要,设计出合理的表示数据的链表结构,并设计相关算法。二、实验内容及要求说明 1:本次实验中的链表结构均为带头结点的单链表。说明 2: 学生在上机实验时,需要自己设计出所涉及到的函数,同时设计多组输入数据并编写主程序分别调用这些函数,调试程序并对相应的输出作出分析;修改输入数据,预期输出并验证输出的结果,加深对有关算法的理解。具体要求:建立单链表,完成链表(带表头结点)的基本操作:建立链表、插入、删除、查找、输出;其它基

2、本操作还有销毁链表、将链表置为空表、求链表的长度、获取某位置结点的内容、搜索结点。三、实验所涉及的知识点数据结构、C 语言语法函数、结构体类型指针、单链表(建表、初始化链表、求表长、插入、删除、查询算法)等。四、实验结果及分析(所输入的数据及相应的运行结果,运行结果要有提示信息,运行结果采用截图方式给出。 ) 2五、总结与体会(调试程序的心得与体会,若实验课上未完成调试,要认真找出错误并分析原因等。 )调试程序时,出现了许多错误。如:结构体类型指针出错,忽略了释放存储空间,对头插法建表、尾插法建表不熟悉等。另外还有一些语法上的错误。由于对所学知识点概念模糊,试验课上未能完成此次上机作业。后来经

3、过查阅教材,浏览网页等方式,才完成试验。这次试验出现错误最重要的原因就是对课本知识点理解不深刻以及编写代码时的粗心。以后要都去练习、实践,以完善自己的不足。六、程序清单(包含注释)/单链表3#include#include#define OK 1#define ERROR 0typedef char ElemType;typedef int Status;/线性表的单链表的存储结构typedef struct LNodeElemType data;struct LNode *next;LNode,*LinkList;/LinkList 为结构体类型的指针,可以直接定义变量,比如 LinkLis

4、t p;/建表(头插法)void CreatListF(LinkList /分配内存空间L-next=NULL;/在表中插入元素LinkList S;int i;/头插法for(i=0;idata=ai;/数据域S-next=L-next;L-next=S;4/建表(尾插法)void CreatListR(LinkList L-next=NULL;LinkList p;p=L;LinkList S;int i;/尾插法for(i=0;idata=ai;p-next=S;p=S;p-next=NULL;/初始化线性表void InitList(LinkList L-next=NULL;/获得链表

5、元素Status GetElem(LinkList L,int i,ElemType int j;5/初始化,p 指向第一个结点p=L-next;/j 为计数器j=1;/顺指针往后查找,直到 p 指向第 i 个元素或 p 为空while(p j+;/第 i 个元素不存在if(!p | ji)return ERROR;/取第 i 个元素e=p-data;return OK;/插入Status ListInsert(LinkList LinkList p;p=L;while(p!=NULL j+;if(!p | ji-1)return ERROR;LinkList S;6S=(LinkList)m

6、alloc(sizeof(LNode);/生成新结点S-data=e;S-next=p-next;p-next=S;return OK;/删除Status ListDelete(LinkList LinkList q;int j=0;p=L;while(p-next)!=NULL j+;/!(p-next) :指向第 i 个结点的指针为空(第 i 个元素不存在)if(!(p-next) | ji-1)return ERROR;q=p-next;p-next=q-next;e=q-data;free(q);return OK;/求表的长度int ListLength(LinkList L)Lin

7、kList p;7p=L;int j=0;/线性链表最后一个结点的指针为空while(p-next)!=NULL)j+;p=p-next;return j;/输出void visit(LinkList L)LinkList p;p=L-next;while(p!=NULL)printf(“%c “,p-data);p=p-next;/销毁:要销毁的话从头结点开始依次 free 但要先得到下一个节点再 freevoid DestroyList(LinkList LinkList q;p=L;q=p-next;while(p!=NULL)free(p);8p=q;q=p-next;/ free(p

8、);/判空int ListEmpty(LinkList L)/为空表则执行该语句,否则返回 return 0;return (L-next=NULL);/查找int ListSearch(LinkList L,ElemType e)LinkList p;p=L-next;int i=1;while(p!=NULL i+;if(p=NULL)return 0;return i;int main()ElemType e;ElemType a6=a,b,c,d,e,f;LinkList L;/链表的头指针9printf(“头插法建表:“);CreatListF(L,a,6);visit(L);pri

9、ntf(“nn“);/初始化InitList(L);printf(“初始化后的表:“);visit(L);printf(“nn“);printf(“尾插法建表:“);CreatListR(L,a,6);visit(L);printf(“nn“);/初始化后表为空,此时不要调用 GetElem()GetElem(L,3,e);printf(“表中第 3 个元素为:“);printf(“%cnn“,e);/在第 5 个位置插入字符kListInsert(L,5,k);printf(“在表中第 5 个位置插入字符k后:“);visit(L);printf(“nn“);printf(“表的长度为:%dnn“,ListLength(L);int z;10z=ListSearch(L,d);printf(“d 是第%d 个元素nn“,z);ListDelete(L,2,e);printf(“删除第 2 个元素:%cnn“,e);/销毁/ DestroyList(L);return 0;

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。