欢迎来到天天文库
浏览记录
ID:47506228
大小:528.00 KB
页数:21页
时间:2020-01-12
《双链表的建立插入查找删除算法的实现》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、数据结构课程设计设计说明书双链表的建立插入查找删除算法的实现学生姓名程站伟学号1221024049班级信管1202成绩指导教师申静数学与计算机科学学院2014年3月7日课程设计任务书2013—2014学年第二学期课程设计名称:数据结构课程设计课程设计题目:双链表的建立插入查找删除算法的实现完成期限:自2014年2月24日至2014年3月7日共2周设计内容:1.任务说明(1)任意输入一组数据,能得到一个带头结点的双向链表;(2)查找数据域为一特定值的某个结点时,从表头结点往后依次比较各结点数据域的值,若正是该特定值,
2、则返回指向结点的指针,否则继续往后查,直到表尾;(3)可以随意地在某已知结点p前或者p后插入一个新的结点;(4)删除某个结点,即插入某个结点的逆操作。2.要求1)问题分析和任务定义:根据设计题目的要求,充分地分析和理解问题,明确问题要求做什么?2)逻辑设计:写出抽象数据类型的定义,各个主要模块的算法,并画出模块之间的调用关系图;3)详细设计:定义相应的存储结构并写出各函数的伪码算法。4)程序编码:把详细设计的结果进一步求精为程序设计语言程序。5)程序调试与测试:采用自底向上,分模块进行,即先调试低层函数。6)结果分
3、析:程序运行结果包括正确的输入及其输出结果和含有错误的输入及其输出结果。算法的时间、空间复杂性分析;7)编写课程设计报告;3.参考资料指导教师:申静教研室负责人:申静课程设计评阅评语:指导教师签名:年月日摘要此课题讨论如何在链式结构中建立双向链表,并且合理利用如何在双链表中引用插入、查找、删除运算。双向链表又名双链表,它有两个指针域,其一指向直接前驱,另一指向直接后继。双链表由头指针head唯一确定的。带头结点的双链表的某些运算变得方便。和单链的循环表类似,双链表也可以有相应的循环表。用一个表头单元将双链表首尾相接
4、,即将表头单元中的head指针指向表尾,并将表尾单元的next指针指向表头单元。关键词:双向链表;链式结构;直接前趋;直接后继 目录1.课题描述12.需求分析22.1序功能说明23.概要设计33.1程序描述33.2双链表元素的插入33.4双链表的删除34.程序流程图44.1创建双向链表44.2插入新的元素54.3删除元素64.4查找元素75.程序编码86.程序调试分析137.结果分析147.1进行双链表的创建147.2进行插入操作147.3进行查找操作157.4删除操作15总结16参考文献171.课题描述双链表双(
5、向)链表中有两条方向不同的链,即每个结点中除next域存放后继结点地址外,还增加一个指向其直接前趋的指针域prior。双链表由头指针head惟一确定的。带头结点的双链表的某些运算变得方便。将头结点和尾结点链接起来,为双(向)循环链表。双链表的的存储结构TypedefstructDuLNode{ElemTypedate;structDuLNode*prior;structDuLNode*next;}DuLNode,*DuLinkList;172.需求分析2.1序功能说明链表是线性表的链式表示,由于它不要求逻辑上相邻的
6、元素子在物理位置上也相邻,所以它没有顺序存储结构在插入删除操作时需要移动大量元素的弱点。双链表有两个指针域,一个指向指针前驱,一个指向指针后继。本程序包括的功能:插入、查找、删除。如图2.11为双链表的流程示意图:图2.1如图2.12是在双向链表中插入结点时指针变化状况:图2.2插入元素如图2.13是在双向链表中删除结点时指针变化状况:图2.3删除结点173.概要设计3.1程序描述本次程序设计包括双链表的建立,链表的输出,数值的插入,数值的删除,数值的查找,输出菜单列表等六大函数.主要分为双链表创建,双链表创建指针
7、变化,结果输出,三大步骤。3.2双链表元素的插入StatusListInsert_DuL(DuLinkList&;L,inti,ElemTypee)//在表L中第i个位置插入元素e//{if(!(s=(DuLinklist)malloc(sizeof(DuLNode)))returnERROR;s->data=e;s->prior=p->prior;p->piror-next=s;s->next=p;p->prior=s;returnOK;}3.4双链表的删除StatusListDelete_DuL(DuLinkL
8、ist&;L,inti,ElemTypee)//表L中第i个位置删除元素e//{e=p->data;p->prior->next=p->next;p->next->prior=p->prior;free(p);returnOK;}174.程序流程图4.1创建双向链表图4.1创建表174.2插入新的元素图4.2插入174.3删除元素图4.3删除数174.4查找
此文档下载收益归作者所有