1 / 19
文档名称:

数据结构课程设计-单链表.docx

格式:docx   大小:153KB   页数:19页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

数据结构课程设计-单链表.docx

上传人:碎碎念的折木 2022/6/30 文件大小:153 KB

下载得到文件列表

数据结构课程设计-单链表.docx

相关文档

文档介绍

文档介绍:目 录
选题背景 1
方案与论证 2
链表的概念和作用 2
算法的设计思想 3
相关图例 4
单链表的结点结构 4
算法流程图 4
实验结果 5
链表的建立 5
单链表的插入 5
单链表的输出 6
查找元素 6
单程图
实验结果
链表的建立
图 3-1 链表的建立
单链表的插入
图 3- 2 单链表的插入
单链表的输出
图 3-3 输出单链表元素
查找元素
图 3-4 查找成功
图 3-5 查找失败
单链表的删除
图 3-6 删除成功
图 3-6 删除失败
显示链表中的元素个数(计数)
图 3-7 输出长度
结果分析
单链表的结构
一般情况下,使用链表,只关心链表中结点间的逻辑顺序,并不关心每个结点的实际存储位置,因此通常情况下用箭头来表示链域中的指针,于是链表就可以更直观的画成用箭头链接起来的结点序列,如下图所示:
H
A
B
C
D
E
^
图 4-1 单链表的示例图
单链表的操作特点
顺链操作技术
从“头”开始,访问单链表 L 中的结点 i(p 指向该节点)时,由于第 i 个结点的地址在第 i-1 个结点(pre 指向该结点,为 p 的前驱)的指针域中存放, 查找必须从单链表的“首结点”开始(p=L);通过p=p->next 并辅助计数器来实现。
指针保留技术
通过对第 i 个结点进行插入、删除等操作时,需要对第 i-1 个结点的指针域进行链址操作(pre->next),因此在处理过程中始终需要维持当前指针 p 与其前驱指针 pre 的关系,将这种技术称为“指针保留技术”。
链表处理中的相关技术
单链表与多重链表的差别在于指针域的个数。
判断当前结点 p 是否为表尾。一半链表中,p 结点是表尾的条件是:该节点的后继结点为空指针,即 p->next==NULL; 3)链表的长度并未显示保存。由于链表是动态生成的结构,其长度要通过顺链查找到表尾得到。因此在处理链表时,往往是以当前处理结点 p 是否为表尾作为控制条件,而不是长度 n 作为控制条件。
设计体会及今后的改进意见
通过这次实验加深了我对于单链表的进一步了解,了解到了单链表在内存中的存储结构,最重要的是学会了如何运用C 语言将单链表的建立,插入、删除、添加等操作。在程序实现中也遇到了一些困难,在单链表初始化时,使用了 0 作为结束输入符,导致单链表不能存储数据 0;单链表中只能存储相同类型的数据,在存储不同类型的数据时需要改变输入结束标志,程序通用性比较差。
在进行程序设计的时候没有考虑好删除和查找的方式,只进行了输入元素的查找和删除,而且进行链表的插入时,只考虑了头插法在结尾插入,而没有考虑输入结点插入等,程序的灵活性比较低。
通过这次课程设计,让我充分认识到数据结构在编写程序方面的重要地位。不仅仅是单链表的操作,还有栈和队列等特殊的单链表操作,以及其他一些常用的数据结构对于程序的效率和内存使用有很大的帮助。我希望在接下来的学****中收获更多的东西。
参考文献
[1]--用C语言描述[M].北京:高等教育出版社,. [2][M].北京:清华大学出版社,.
附录代码:
#pragma once
结构体定义:
#include<>
#include<>
enum my_enum
{
_CREATE,
_INSERT,
_EXIT,
_PRINT,
_SEARCH,
_COUNT,
};
_D