1、 1 课程设计说明书课程设计说明书 题 目: 双向循环链表的创建及相关操作的实现 题 目: 树 题 目: 图 课 程: 数据结构 院 (部) : 计算机学院 专 业: 软件工程 班 级: 学生姓名: 学 号: 指导教师: 完成日期: 2012-12-27 2 目目 录录 课程设计任务书. 3 双向循环链表的的创建及相关操作的实现. 17 二、数据结构 5 三、逻辑设计 5 四、编码 6 五、测试数据 6 六、测试情况 15 树的的创建及相关操作的实现. 17 一、问题描述 5 二、数据结构 5 三、逻辑设计 5 四、编码 6 五、测试数据 6 六、测试情况 15 图的的创建及相关操作的实现.
2、17 一、问题描述 5 二、数据结构 5 三、逻辑设计 5 四、编码 6 五、测试数据 6 六、测试情况 15 结 论 19 参考文献. 20 课程设计指导教师评语.错误错误!未定义书签。未定义书签。 3 课程设计任务书课程设计任务书 设计题目 双向循环双向循环链表的创建及相关操作的实现 已知技术参 数和设计要 求 对给定的双向循环链表能够实现链表的初始化,节点的添加, 节点的删除,和链表的逆置。并对所创建的双向循环链表实现以 下的操作: 1.建立一个空的链表。 2.插入第 i个节点。 3.删除第 i个节点。 4.插入第一个节点。 5.删除最后一个节点。 6.逆置。 4 指导教师(签字) :
3、教研室主任(签字) 设 计 内 容 与 步 骤 1、 设计存储结构 2、 设计算法 3、 编写程序,进行调试 4、 总结并进行演示、讲解 设计工作计 划与进度安 排 根据自己选作的题目,给出完成每项工作的时间表,包括起止时间、工作内 容、地点 设计考核要 求 1、 考勤 20% 2、 课程设计说明书 50% 3、 成果展示 30% 5 双向循环链表的创建及相关操作的实现双向循环链表的创建及相关操作的实现 一、问题描述一、问题描述 用图示的方法描述所处理的双向循环链表的形态 二、数据结构二、数据结构 针对所处理的双向循环链表: 1、画出双向循环链表的存储结构 三、逻辑设计三、逻辑设计 1、总体思
4、路 1.构思: 首先双向循环链表的创建建立在双向链表之上,所以建立双向循环表时 每个节点有三个属性:即数据域、上一个节点和下一个节点。其中第一个节点的 上一个节点是最后一节点,最后一个节点的下一个节点是第一个节点。从而构成 双向循环链表。 1.首先创建出来一个空的双向循环链表链表里面只有 1 个节点即 beginMarker。 一个个节点构成一个空的双向循环链表。 2.创建出链表后调用 add 方法在 beginMarker 的后面添加节点,每次添加节点后 吧添加的那个节点作为 endMarker 使其和头结点构成循环。 3.插入一个节点时首先要找到要插入节点的位置,如果是第一个节点,则把第一
5、 个节点先保存起来,把新节点添加进去,再把原来的第一个节点添加进来插入最 后一个节点是和添加第一个节点的方法类似。 若是在中间的某个位置插入则先找到那个位置的元素,类似于从第一个节点插 入。 a2 a 3 a1 a 0 6 4.删除时先找到要删除的位置如果是第一个位置,则把第一个元素的值先保存, 然后把第一个节点的 next 赋给 beginMarker,然后把第一个节点的值致 null; 在中间删除也是删除最后一个把最后一个节点的前一个节点的 next 置空。 5.逆置是创建一个空的链表把原来的链表的元素添加到空链表当中。然后打印出 来 2、模块划分(以图示的方法给出各个函数的调用关系) M
6、yTwoLinkedCycleList list=new MyTwoLinkedCycleList(); MyTwoLinkedCycleList list1=new MyTwoLinkedCycleList(); list.addInit(); List.add(); List.remove() Lst.print(); List.panduan(list1); 3、函数或类的具体定义和功能 MyTwoLinkedCycleList 1.MyTwoLinkedCycleList()构造方法用于创建空的链表 2.init()初始化各项说明文字 3.addInit()用于向空的链表初始化节点 4.add()用于添加顶点和最后一个顶点之间的节点 5.add(AnyType data,int index)用于添加任意位置的顶点 6.remove()删除顶点操作 7.size()用于求链表的大小 8.inverse()用于逆置链表 9.print()用于打印出链表中的各元素 10.pand