数据结构课程设计报告-双向循环链表的创建及相关操作的实现

上传人:m**** 文档编号:559687658 上传时间:2022-08-31 格式:DOC 页数:52 大小:898.51KB
返回 下载 相关 举报
数据结构课程设计报告-双向循环链表的创建及相关操作的实现_第1页
第1页 / 共52页
数据结构课程设计报告-双向循环链表的创建及相关操作的实现_第2页
第2页 / 共52页
数据结构课程设计报告-双向循环链表的创建及相关操作的实现_第3页
第3页 / 共52页
数据结构课程设计报告-双向循环链表的创建及相关操作的实现_第4页
第4页 / 共52页
数据结构课程设计报告-双向循环链表的创建及相关操作的实现_第5页
第5页 / 共52页
点击查看更多>>
资源描述

《数据结构课程设计报告-双向循环链表的创建及相关操作的实现》由会员分享,可在线阅读,更多相关《数据结构课程设计报告-双向循环链表的创建及相关操作的实现(52页珍藏版)》请在金锄头文库上搜索。

1、山东建筑大学计算机科学与技术学院课程设计说明书 题 目: 双向循环链表的创建及相关操作的实现 题 目: 树 题 目: 图 课 程: 数据结构院 (部): 计算机学院专 业: 软件工程班 级: 学生姓名: 学 号: 指导教师: 伊静完成日期: 2012-12-27目 录课程设计任务书I双向循环链表的的创建及相关操作的实现3二、数据结构3三、逻辑设计3四、编码3五、测试数据3六、测试情况3树的的创建及相关操作的实现3一、问题描述3二、数据结构3三、逻辑设计3四、编码3五、测试数据3六、测试情况3图的的创建及相关操作的实现3一、问题描述3二、数据结构3三、逻辑设计3四、编码3五、测试数据3六、测试情

2、况3结 论4参考文献5课程设计指导教师评语6课程设计任务书设计题目双向循环双向循环链表的创建及相关操作的实现已知技术参数和设计要求对给定的双向循环链表能够实现链表的初始化,节点的添加,节点的删除,和链表的逆置。并对所创建的双向循环链表实现以下的操作:1. 建立一个空的链表。 2. 插入第i个节点。3. 删除第i个节点。4. 插入第一个节点。5. 删除最后一个节点。6. 逆置。设计内容与步骤1、 设计存储结构2、 设计算法3、 编写程序,进行调试4、 总结并进行演示、讲解设计工作计划与进度安排根据自己选作的题目,给出完成每项工作的时间表,包括起止时间、工作内容、地点设计考核要求1、 考勤20%2

3、、 课程设计说明书50%3、 成果展示30%指导教师(签字): 教研室主任(签字)双向循环链表的创建及相关操作的实现一、问题描述用图示的方法描述所处理的双向循环链表的形态二、数据结构针对所处理的双向循环链表:1、 画出双向循环链表的存储结构 a2a3a1a0三、逻辑设计1、总体思路1.构思: 首先双向循环链表的创建建立在双向链表之上,所以建立双向循环表时 每个节点有三个属性:即数据域、上一个节点和下一个节点。其中第一个节点的上一个节点是最后一节点,最后一个节点的下一个节点是第一个节点。从而构成双向循环链表。1. 首先创建出来一个空的双向循环链表链表里面只有1个节点即beginMarker。一个

4、个节点构成一个空的双向循环链表。2. 创建出链表后调用add方法在beginMarker的后面添加节点,每次添加节点后吧添加的那个节点作为endMarker使其和头结点构成循环。3. 插入一个节点时首先要找到要插入节点的位置,如果是第一个节点,则把第一个节点先保存起来,把新节点添加进去,再把原来的第一个节点添加进来插入最后一个节点是和添加第一个节点的方法类似。 若是在中间的某个位置插入则先找到那个位置的元素,类似于从第一个节点插入。4.删除时先找到要删除的位置如果是第一个位置,则把第一个元素的值先保存,然后把第一个节点的next赋给beginMarker,然后把第一个节点的值致null;在中间

5、删除也是删除最后一个把最后一个节点的前一个节点的next置空。5.逆置是创建一个空的链表把原来的链表的元素添加到空链表当中。然后打印出来2、 模块划分(以图示的方法给出各个函数的调用关系) MyTwoLinkedCycleList list=new MyTwoLinkedCycleList(); MyTwoLinkedCycleList list1=new MyTwoLinkedCycleList(); list.addInit(); List.add(); List.remove() Lst.print(); List.panduan(list1); 3、 函数或类的具体定义和功能 MyTw

6、oLinkedCycleList 1.MyTwoLinkedCycleList()构造方法用于创建空的链表 2.init()初始化各项说明文字 3.addInit()用于向空的链表初始化节点 4.add()用于添加顶点和最后一个顶点之间的节点 5.add(AnyType data,int index)用于添加任意位置的顶点 6.remove()删除顶点操作 7.size()用于求链表的大小 8.inverse()用于逆置链表 9.print()用于打印出链表中的各元素 10.panduan()用于选择是否逆置链表四、编码package package2;import java.util.Sca

7、nner;public class MyTwoLinkedCycleListSuppressWarnings(hiding)private class Node AnyType data; Node next; Node previous; private Node() data=null; previous=null; next=null; private Node(AnyType data) this.data=data; this.previous=null; this.next=null; private Node(AnyType data,Node previous,Node nex

8、t) this.data=data; this.previous=previous; this.next=next; SuppressWarnings(unused)private int size=0;private Node beginMarker;private Node endMarker;/初始化一个空的双向循环链表public MyTwoLinkedCycleList()beginMarker=new Node();endMarker=new Node();beginMarker.previous=endMarker;beginMarker.next=null;endMarker.

9、previous=null;endMarker.next=beginMarker;public void init()System.out.println(*数据结构课程设计*);System.out.println(*改程序用于完成对于双向循环链表的各项操作*);System.out.println(*);System.out.println(1.空的双向循环链表已经建立);/2.用于向空的双向循环链表里面添加数据SuppressWarnings(unchecked)public void addInit()Scanner sc=new Scanner(System.in);System.o

10、ut.println(2.该步骤执行初始化节点操作);System.out.println(a.请输入要插入节点的个数);int n=sc.nextInt();for(int i=0;in;i+)System.out.println(b.请输入要插入的元素的数值:);AnyType data=(AnyType)sc.next();if(beginMarker.next=null)Node node=new Node(data);beginMarker.next=node;node.previous=beginMarker;endMarker=node;endMarker.next=beginM

11、arker;beginMarker.previous=endMarker; elseNode node=new Node(data);endMarker.next=node;node.previous=endMarker;endMarker=node;endMarker.next=beginMarker;beginMarker.previous=endMarker;/public void add(AnyType data)if(beginMarker.next=null)Node node=new Node(data);beginMarker.next=node;node.previous=

12、beginMarker;endMarker=node;endMarker.next=beginMarker; elseNode node=new Node(data);endMarker.next=node;node.previous=endMarker;endMarker=node;endMarker.next=beginMarker;/该方法用于插入任何一个weizhideSuppressWarnings(unchecked)public void add()Scanner sc=new Scanner(System.in);System.out.println(3.该步骤执行插入节点操作);System.out.print(*请输入要插入节点的个数*);System.out.println(可

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > PPT模板库 > 总结/计划/报告

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号