1 / 15
文档名称:

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

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

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

分享

预览

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

上传人:niupai11 2022/6/3 文件大小:252 KB

下载得到文件列表

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

相关文档

文档介绍

文档介绍:目录
1选题背景 1
2方案与论证 1
1链表的概念和作用 1
(软硬件) 1
1
2
4. 1单链表的结点结构 2
2
3过程论述 3
1建立链表并打印链表中的元素

S "E:\@?5^\vc+ +\Debug\"
[青输入娶得到元素於位置i = 2
•i position data is 2
请选择以下操作数,选择T为结束
1:creatlinklist<H)
2:leng<H>
3:GetElem<H,i>
4:InsertCH„i,x>
5:Delete(H,x>
6:print<H>
7:Locate(H,x>
图3・3取出链表中的元素
3插入元素
图3-4插入元素
3. 4删除元素
图3-5删除元素
图3-6删除元素后打印链表

图3・7查找位置为6的元素
4结果分析
1单链表的结构
一般情况下,使用链表,只关心链表中结点间的逻辑顺序,并不关心每个结 点的实际存储位置,因此通常情况下用箭头來表示链域中的指针,于是链表就可 以更直观的画成用箭头链接起來的结点序列,如下图所示:
图4」单链表的示例图
4. 2单链表

从“头”开始,访问单链表L中的结点i (p指向该节点)时,由于第i个 结点的地址在第iT个结点(pre指向该结点,为p的前驱)的指针域中存放, 查找必须从单链表的“首结点”开始(p二L);通过p二p->next并辅助计数器來实 现。

通过对第i个结点进行插入、删除等操作时,需要对第i-1个结点的指针域 进行链址操作(pre->next),因此在处理过程中始终需要维持当前指针p与其前 驱指针pre的关系,将这种技术称为“指针保留技术”。
5结论与总结
通过这十几天的时间,最后终于完成了这次数据结构课程设计任务,内心 激动的同时,也是十分的辛苦的,从选题、审题、查资料到开始构思,这个过程 是最慢的,也是最难的。通过这次的课程设计,我们对数据结构中单链表的应用 有了更深的理解,并且使我们深刻的认识到实践的重要性,只有理论与实践相结 合才能达到很好的学****效果,学到很多东西,同时也发现仅仅书本的知识是远远 不够的,需要把知识运用到实践中去,能力才能得到提高。由于刚开始对单链表 的应用总体结构不熟悉,对书本知识的学****不够扎实,刚拿到题目的时候,还不 好下手,就请教了一些学****成绩好一点的同学,并认真查找了一些资料,才对这 次课程设计有了初步的了解。
根据对数据结构的了解,我们觉得我们对单链表的认识要深一点。因此我们 选择了单链表的实验,作为线性表的一种存储结构,它的特点是可以从分利用存 储单元來存储数据,并且可以方便的实现对数据进行插入、删除、输出等操作。 在我们进行课程设计时,虽然在大体上算法是正确的,但时常会出现一些小问题, 使我们不得不花一些时间來查找、修改错误。
通过这次课程设计,让我们充分认识到数据结构在编写程序方面的重要地 位。由于我们在课程设计中编写的是对单链表的基本操作,因此我们在这次课程 设计中收获了很多关于单链表的应用方面的知识。由于课程设计的题目还有很 多,因此没有对其他的题目进行深入的了解而感到遗憾,因此我们希望在以后的 学****过程中,能够多多的学****这方面没知识來弥补不足。
最后,通过本次数据结构课设,我学会了如何与别人共同探讨、解决问题; 当发现问题时,能学会利用身边一切资料,包括图书、网上资料等等來解决问题, 并最终完成任务。
参考文献
[M].北京:高等教育出版社,2011. 6.
[M].北京:清华大学出版社,2004. 6.
附录代码:
tiinclude <stdio. h>
ttinclude<stdlib. h>
typedef struct node//定 义 node 结点 {
int data;
struct node *next;
}linklist;
void setnull (linklist *H)//清空单链表 {
H->next=NULL:
}
vo