《数据结构课程设计.ppt》由会员分享,可在线阅读,更多相关《数据结构课程设计.ppt(11页珍藏版)》请在优知文库上搜索。
1、数据结构课程设计 -成果展示成果展示目录 一.双向循环链表 二.二叉树 三.有向图双向循环链表双向循环链表 功能 :1.实现双向循环链表空表创建2.实现双向循环链表添加节点3.实现双向循环链表删除节点4 实现双向循环链表就地逆置5 打印出双向循环链表双向循环链表双向循环链表 方法:1.1.构造方法建立空表构造方法建立空表:DoubleCircularLinked():DoubleCircularLinked()2.2.插入节点的方法:插入节点的方法:insertinsert(AnyType xAnyType x)3.3.在某个位置插入节点的方法:在某个位置插入节点的方法:insertinser
2、t(int idxint idx,AnyType xAnyType x)4.4.删除某个位置的节点方法:删除某个位置的节点方法:removeremove(int idxint idx)5.5.就地逆置的方法:就地逆置的方法:transfertransfer()()6 6打印链表的方法:打印链表的方法:printprint()()双向循环链表双向循环链表 思路:1.建立头节点headNode和尾节点endNode的双向循环链表2.从键盘上直接输入节点数和节点值添加到链表3.执行插入方法可以实现某个位上的插入4.通过删除方法删除某个位置上的节点5.就地逆置通过改变指针指向逆向输出二叉树 功能:1.
3、实现二叉树的创建2.实现二叉树的层次遍历3.计算出二叉树的叶子节点数4.通过建立一个哈夫曼树,实现哈夫曼算法二叉树 方法:1.创建二叉树的方法:createTree()2.层次遍历的方法:leavelOrder()3.计算叶子节点的方法:countLeafNode()4.创建哈夫曼树的方法:compareNum()5.计算码长的方法:print()二叉树 思路:1.通过从键盘上读取利用先序遍历结果创建一颗二叉树 2.层次遍历:通过利用队列思想看访问的节点不是空时进队列,然后访问下一个节点,头一个节点出队列。3.通过判断访问节点左右孩子为空来计算叶子节点 4.通过输入一数组找出该数组中最小的两个
4、,然后相加得到的数为这两个最小数的根节点依次类推,哈弗曼编码是向右拐加1向左拐加0有向图 功能:1.创建一个有向图2.实现有向图的深度优先遍历3.实现有向图的广度优先遍历4.实现实现有向图的增加边的功能5.实现有向图的删除边的功能6.实现有向图的连通性判断及求连通分量有向图 方法:1.有向图的构造方法实现图的创建:adjDWGraph()2.深度优先遍历的方法:DFSTransfer()3.广度优先遍历的方法:BFSTransfer()4.增加变得方法:addArc()5.删除边的方法:deleteArc()6.判断图的连通性及求连通分量:isConnect()有向图 思路:1.通过从键盘上输入来创建有向图 2.通过节点是否被访问过来进行深度优先遍历和广度优先遍历,广度优先遍历通过队列的思想访问过的进队列,访问下一个是头一个出来来进行每一个节点的遍历 3.通过深度优先遍历来进行图的连通性的判断如果该图是联通的连通分量为其本身,否则输出该图不是连通的并计算出连通分量