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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

实验二单链表的操作.docx

1、实验二单链表的操作2014秋学期算法与数据结构实验报告书 项目名称: 单链表的操作 指导老师: 金萍老师 项目时间: 2014-9-15 项目成员: 张峻峰 瞿子晶 目录一 引言 41.1 编写目的 41、 熟练掌握单链表的存储结构 42、 熟练掌握单链表基本操作的实现 41.2 参考资料 4二 项目介绍 42.1 项目简介 42.2 软件运行环境 4三 需求分析 43.1 总体需求分析 43.2主界面需求分析 4四 总体模块设计 41.操作菜单 52.选择 53.单链表的创建 54.销毁 55.判断表空 56.测量表长 57.插入 58.删除 59.查询元素 510.清空单链表 511.取单

2、链表中指定位置上的元素 512.输出单链表 5五 详细设计 51.主函数 52.菜单函数 63.单链表操作菜单 64.创建单链表函数 65.销毁线性表函数 66.判断表空函数 67.测量表长 68.插入函数 69.删除 710.查询元素函数 711.清空单链表 712.取单链表中指定位置上的元素 713.输出单链表 7六 心得体会 7七 附录(代码) 8单链表的操作一 引言1.1 编写目的1、 熟练掌握单链表的存储结构。2、 熟练掌握单链表基本操作的实现。1.2 参考资料数据结构(C语言版);二 项目介绍2.1 项目简介线性表(linear list)是最常用且最简单的一种数据结构。简言之,一

3、个线性表是n个数据元素的有限序列。至于每个数据元素的具体含义,在不同情况下各不相同,它可以是一个数或一个符号,也可以是一页书,甚至其他更复杂的信息。线性表的链式存储结构的特点是用一组任意的存储单元存储线性表的数据元素(这组存储单元可以是连续的,也可以是不连续的)。开发工具Microsoft Visual C+6.02.2 软件运行环境 处理器无要求,32MB以上内存,硬盘1GB以上 Microsoft(R) Windows(R) 系列所有操作系统三 需求分析3.1 总体需求分析1.单链表的创建2.销毁3.判断表空4.测量表长5.插入6.删除7.查询元素8.清空单链表9.取单链表中指定位置上的元

4、素10.输出单链表。3.2主界面需求分析设计菜单界面显示所有操作。四 总体模块设计1. 操作菜单:输出选择界面菜单2. 选择:输入数字选择对应操作功能3. 单链表的创建:建立一个新的单链表4. 销毁:将单链表销毁5. 5.判断表空:判断单链表是否为空6. 测量表长:测量单链表元素的个数7. 插入:在单链表指定位置上插入数据元素8. 删除:删除指定位置上的数据元素9. 查询元素:查询单链表中指定位置上的元素10. 清空单链表:清空单链表中所有的元素11. 取单链表中指定位置上的元素:取单链表中指定位置上的元素,并存入e中12. 12.输出单链表:输出所有单链表中的元素五 详细设计1.主函数功能说

5、明主函数原型void main()输入按键输入输出无返回值无2.菜单函数功能说明主函数原型void Menu()输入按键输入输出无返回值无3.单链表操作菜单功能说明创建单链表原型void Select(LNode *L)输入输入 0-9数字输出无返回值无4.创建单链表函数功能说明创建单链表原型Status CreateList_L(LNode *L, int n)输入无 输出无 返回值单链表首地址5.销毁线性表函数功能说明销毁单链表原型Status DestroyList_L(LNode *L)输入无 输出无 返回值单链表首地址6.判断表空函数功能说明判断表空函数原型Status ListEm

6、pty_L(LNode *L)输入无输出无返回值若L为空表,则返回TRUE,否则返回FALSE7.测量表长功能说明测量表长原型Status ListLength_L(LNode *L)输入无输出 输出L中数据元素个数返回值返回L中数据元素个数8.插入函数功能说明插入函数原型Status ListInsert_L(LNode *L, int i, ElemType e)输入 输入元素位置i输出 输出数据元素的值返回值单链表首地址9.删除功能说明删除原型Status ListDelete_L(LNode *L, int i, ElemType *e)输入删除元素的位置i 输出 输出删除数据元素的值

7、e返回值返回删除的元素值e10.查询元素函数功能说明查询元素函数原型Status QueryList_L(LNode *L, int i)输入 输入查询数据元素值e输出 元素e值返回值单链表首地址11.清空单链表功能说明清空单链表原型Status ClearList_L(LNode *L)输入无输出无 返回值单链表首地址12.取单链表中指定位置上的元素功能说明取单链表中指定位置上的元素原型Status GetElem_L(LNode *L, int i, ElemType *e)输入输入指定的位置i 输出 输出第i个数据元素的值e返回值用e返回L中第i个数据元素的值13.输出单链表功能说明输出

8、单链表原型Status ListTraverse_L(LNode *L输入无输出 输出单链表的所有数据元素返回值无六 心得体会1.这次单链表操作的操作实验是以项目形式,小组成员共同完成的。通过这次实验让我们意识到一个项目必须是一个小组成员共同完成,小组成员的分工明确是完成一个项目的前提,只有明确了分工,我们才能做好相应的模块,最后才能整合到一起。2这次单链表的操作,让我对单链表的操作更加熟悉,明白了单链表的存储方式,知道单链表与顺序表以及其他线性表的不同之处。3.在写代码时,我们要完成了一个功能并测试通过后,才能接着添加功能,不要先一次把所有的功能写进去再测试,这样容易导致一次出现大量错误,我

9、们却无法找到错误并修改。使我们失去信心,认为我们写不出来,从而放弃实验。七 附录(代码)#include#include#include#include#define TRUE 1#define FALSE 0#define OK 1#define ERROR 0#define INFEASIBLE -1#define OVERFLOW -2#define Status int#define ElemType inttypedef struct LNode ElemType data; struct LNode * next;LNode, *LinkList;void Menu();/菜单vo

10、id Select(LNode *L);/选择菜单Status CreateList_L(LNode *L, int n);/创建单链表Status DestroyList_L(LNode *L);/销毁单链表Status ListEmpty_L(LNode *L);/判断表空Status ListLength_L(LNode *L);/测量表长Status ListInsert_L(LNode *L, int i, ElemType e);/插入元素Status ListDelete_L(LNode *L, int i, ElemType *e);/删除指定位置上的数据元素Status Qu

11、eryList_L(LNode *L, int i);/查询元素Status ClearList_L(LNode *L);/清空单链表Status GetElem_L(LNode *L, int i, ElemType *e); /取顺序表中指定位置上的元素Status ListTraverse_L(LNode *L);/输出单链表void main() LNode L; L.next = NULL; while (1) Menu(); Select(&L); void Menu() system(color 02); system(cls); printf(n); printf(t n);

12、printf(t n); printf(t *单*链*表*的*操*作*n); printf(t n); printf(t 1: 创建单链表 2: 销毁单链表 n); printf(t n); printf(t 3: 判断表空 4: 测量表长 n); printf(t n); printf(t 5: 插入数据元素 6: 删除数据元素 n); printf(t n); printf(t 7: 查询元素 8: 清空单链表 n); printf(t n); printf(t 9: 取指定位置元素 10: 输出单链表 n); printf(t n); printf(t 0: 退出 n); printf(

13、t n); printf(t B U G n); printf(nntt 请选择操作:);void Select(LNode *L) int a, i,flag = 0; char c; ElemType e; while (1) /输入检测 scanf(%d, &a); getchar(); if (a = 0 & a 0 & i 0 & i 0 & i 0 & i next = NULL; last = L; for (i = n; i 0; -i) p = (LNode *)malloc(sizeof (LNode); printf(请输入数据:); scanf(%d, p); p-ne

14、xt = last-next; last-next = p; last = p; return OK;Status ListTraverse_L(LNode *L) /输出单链表 LNode *p; p = L-next; if (p != NULL) while (p != NULL) printf(%dt, p-data); p = p-next; else printf(没有任何数据!); return OK;Status DestroyList_L(LNode *L) /销毁单链表 if (L-next != NULL) L-next = NULL; else printf(顺序表不存

15、在!); return OK;Status ListEmpty_L(LNode *L) /判断表空 if (L-next != NULL) printf(顺序表不为空!); return FALSE; else printf(顺序表为空!); return TRUE; Status ListLength_L(LNode *L) /测量表长 LNode *p; int i = 0; p = L-next; if (p != NULL) while (p != NULL) i+; p = p-next; printf(单链表共有%d个数据n, i); else printf(没有任何数据!); r

16、eturn i;Status ListInsert_L(LNode *L, int i, ElemType e) /插入元素 LNode *p,*last; int ii; p = L; last = p; while (p != NULL) if (last != NULL) for (ii = 0; ii next; p = p = (LNode *)malloc(sizeof (LNode); p-data = e; p-next = last-next; last-next = p; printf(插入成功!n); break; return OK;Status ListDelete_

17、L(LNode *L, int i, ElemType *e) /删除指定位置上的数据元素 LNode * p, *last; int ii; p = L; last = p; while (p != NULL) if (last != NULL) for (ii = 0; ii next; p = last-next; *e = p-data; last-next = p-next; free(p); printf(删除成功!n); break; return OK;Status QueryList_L(LNode *L, int i) /查询指定位置上的数据元素 LNode * p; in

18、t ii,e; p = L; while (p != NULL) for (ii = 0; ii next; e = p-data; printf(位置 %d 上的数据元素为:%dn,i,e); break; return OK;Status ClearList_L(LNode *L) /清空单链表 LNode *p; p = L-next; free(p); L-next = NULL; printf(清空完毕!n); return OK;Status GetElem_L(LNode *L, int i, ElemType *e) /取顺序表中指定位置上的元素 LNode * p; int ii; p = L; while (p != NULL) for (ii = 0; ii next; *e = p-data; break; return OK;

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

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