双向循环链表操作-二叉树和树操作-图的创建及相关操作的实现7_第1页
双向循环链表操作-二叉树和树操作-图的创建及相关操作的实现7_第2页
双向循环链表操作-二叉树和树操作-图的创建及相关操作的实现7_第3页
双向循环链表操作-二叉树和树操作-图的创建及相关操作的实现7_第4页
双向循环链表操作-二叉树和树操作-图的创建及相关操作的实现7_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1数据结构课程设计姓名:姜珅

学号:20121113027班级:网络121班2课程设计题目:一、双向循环链表;二、二叉树和树;三、图的创建及相关操作3操作要求:

1、建立一个空表; 2、插入第i个节点; 3、删除第i个节点; 4、插入第一个节点; 5、插入最后一个节点; 6、就地逆置

4设计思想1、总体思路:确定双向循环链表的存储结构→定义存储结构→编写相关的方法实现设计要求→测试并完成对数据的操作。1、模块划分(以图示的方法给出各个函数的调用关系)

5函数或类的具体定义和功能方法

Tree(){} 构造方法并定义初节点尾节点并且实例化

Node<AnyType>getNode(intidx){} 获取具体节点以便插入与删除

booleanadd(AnyTypex)} 向双向循环链表添加数据

voidadd(intidx,AnyTypex){} 具体位置节点插入数据

voidInverse(){} 双向循环链表就地逆置

AnyTyperemove(intidx) {} 删除具体节点的位置

AnyTyperemove(Node<AnyType>p){}删除具体节点的位置的数据

voidprint(){} 双向循环链表数值输出

所定义的类:

classTree<AnyType>{} 双向循环链表主类

classNode<AnyType>{} 定义链表存储结构的节点类6测试结果7二叉树和树操作的实现操作要求1、判断所给定的二叉树是不是完全二叉树,如果是,将存储结构转换为顺序存储;2、若是完全二叉树,将其转换为顺序存储后,判断是不是堆,若不是,将其调整为堆,并输出结果检查调整后的结果是否正确;8设计思路1、总体思路首先定义节点类,然后先序建立二叉树,根据完全二叉树性质判断是否是完全二叉树,若是则按照堆排序建立堆,然后输出2、模块划分(以图示的方法给出各个函数的调用关系)9函数或类的具体定义和功能节点类classBinaryNode<AnyType>{}主类publicclassBinaryTree<AnyTypeextendsComparable<?superAnyType>>函数方法:Precreate(AnyType[]st){}先序创建二叉树PreOrder(BinaryNodetree){}先序遍历二叉树BooleanisCompBinaryTree(BinaryNodetree){}判断是否是完全二叉树Change(BinaryNodetree){}如果是完全二叉树转换为顺序存储Isheap(BinaryNodetree){}判断是不是二叉堆VoidheapSort(AnyType[]bn){}把数组调整为堆10测试结果11图的创建及相关操作的实现1、完成增加顶点和删除顶点的功能,删除顶点也要删除与之关联的边;2、判断图的连通性,输出连通分量的个数;3、判断图中是否存在环;操作要求12设计思想1、总体思路以邻接表结构建立有向图,删除顶点也要删除与之相关联的边,通过一个顶点访问的次数,来判断是否是连通图,根据入度

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论