数据结构课程设计.ppt
数据结构课程设计,-成果展示,牛乖柄坟褐婪宴阻十食谎进威很坪栗竟账冻伍髓亭惠屠痉卷浸摔司肖嗽饼数据结构课程设计数据结构课程设计,目录,一.双向循环链表二.二叉树三.有向图,狄幼性赏觉挠渭嫂壶痪在泼契务垮抄丸娱伟捻若潦茂呵虽乡讳秤中傍祥齿数据结构课程设计数据结构课程设计,双向循环链表,功能:1.实现双向循环链表空表创建2.实现双向循环链表添加节点3.实现双向循环链表删除节点4 实现双向循环链表就地逆置5 打印出双向循环链表,忻孝狂僵捞挞冬尤闪愤樟尧寺泄敦帮想涩礁绊库柬唉撅蓉凰巧烫撵渐报诊数据结构课程设计数据结构课程设计,双向循环链表,方法:1.构造方法建立空表:DoubleCircularLinked()2.插入节点的方法:insert(AnyType x)3.在某个位置插入节点的方法:insert(int idx,AnyType x)4.删除某个位置的节点方法:remove(int idx)5.就地逆置的方法:transfer()6打印链表的方法:print(),硫改瞄衬矫环哎佰作烧恢好潮扔喳尉蜗井妖抉镊吹短撂袖钵聊朋锐冀对履数据结构课程设计数据结构课程设计,双向循环链表,思路:1.建立头节点headNode和尾节点endNode的双向循环链表2.从键盘上直接输入节点数和节点值添加到链表3.执行插入方法可以实现某个位上的插入4.通过删除方法删除某个位置上的节点5.就地逆置通过改变指针指向逆向输出,躯靡黍稀汝蹦粒港彤统遭夷障凝甩它骆炔嘱哮咋吝奖霖舌脾泻迈倡潜诫贾数据结构课程设计数据结构课程设计,二叉树,功能:1.实现二叉树的创建2.实现二叉树的层次遍历3.计算出二叉树的叶子节点数4.通过建立一个哈夫曼树,实现哈夫曼算法,敞糟溃娠届吼捍遍缠尽绵侗哄绸价钱腕歉哄汾卞盛败婶岔辞辆财枣玲贞腻数据结构课程设计数据结构课程设计,二叉树,方法:1.创建二叉树的方法:createTree()2.层次遍历的方法:leavelOrder()3.计算叶子节点的方法:countLeafNode()4.创建哈夫曼树的方法:compareNum()5.计算码长的方法:print(),斧趁呻睦玩骤爱盾泊涎谋躺斜叫恍烁根絮呕夯婚殊骄筷庆儒座福肋扑垄备数据结构课程设计数据结构课程设计,二叉树,思路:1.通过从键盘上读取利用先序遍历结果创建一颗二叉树2.层次遍历:通过利用队列思想看访问的节点不是空时进队列,然后访问下一个节点,头一个节点出队列。3.通过判断访问节点左右孩子为空来计算叶子节点4.通过输入一数组找出该数组中最小的两个,然后相加得到的数为这两个最小数的根节点依次类推,哈弗曼编码是向右拐加1向左拐加0,蹭纽焦措招稿摹诚显障愈憾烷抿添谢腿邵侠辆隧衔挝钠千述吃将陆秸畏抄数据结构课程设计数据结构课程设计,有向图,功能:1.创建一个有向图2.实现有向图的深度优先遍历3.实现有向图的广度优先遍历4.实现实现有向图的增加边的功能5.实现有向图的删除边的功能6.实现有向图的连通性判断及求连通分量,所癌刻淌蹿熄疯路憨晦调繁惭锻罪潘洼蓄蒙艾径咸魏浙雪监稚族皖榜几炼数据结构课程设计数据结构课程设计,有向图,方法:1.有向图的构造方法实现图的创建:adjDWGraph()2.深度优先遍历的方法:DFSTransfer()3.广度优先遍历的方法:BFSTransfer()4.增加变得方法:addArc()5.删除边的方法:deleteArc()6.判断图的连通性及求连通分量:isConnect(),怖接周晤舶祸村漓剖肾求媒嗓尺腊歇现廊云未酵请胆桑来或扔刹靴喻譬丽数据结构课程设计数据结构课程设计,有向图,思路:1.通过从键盘上输入来创建有向图2.通过节点是否被访问过来进行深度优先遍历和广度优先遍历,广度优先遍历通过队列的思想访问过的进队列,访问下一个是头一个出来来进行每一个节点的遍历3.通过深度优先遍历来进行图的连通性的判断如果该图是联通的连通分量为其本身,否则输出该图不是连通的并计算出连通分量,境翟浸颖巳篇汇氛喀捍峪梅缘求娘矢册六蜘饲极烦籽原伊判汛比条色愧蜀数据结构课程设计数据结构课程设计,