随笔分类 -  数据结构与算法

摘要:可以从四个方向走: 最简单的办法:完全4叉树(不做任何标记) 防止往回走:效率要高点(已经走过的点标记为1)(这样一定可以找出通路,如果一条分支里找到了通路,其他点没有必要再访问这些点,因为通路已经找到了,如果没有找到,则更不用访问这些点,因为这些点绝对走不通) 这里有一个重要结论:A到B点走不通, 阅读全文
posted @ 2019-03-06 10:14 哦摩西罗伊 阅读(285) 评论(0) 推荐(0) 编辑
摘要:递归是一个非常重要的概念,在计算机中用来表示无穷事物的一个重要手段,递归是一种表达相似性对象及动作的无限性构造的方法。 再说递归之前我们先要了解迭代。 迭代:迭代是重复反馈过程的活动,其目的通常是为了逼近所需目标或结果。每一次对过程的重复称为一次“迭代”,而每一次迭代得到的结果会作为下一次迭代的初始 阅读全文
posted @ 2018-01-26 21:26 哦摩西罗伊 阅读(3519) 评论(0) 推荐(2) 编辑
摘要:八皇后问题是一个以国际象棋为背景的问题: 如何能够在 8×8 的国际象棋棋盘上放置八个皇后,使得任何一个皇后都无法直接吃掉其他的皇后。为了达到此目的,任两个皇后都不能处于同一条横行、纵行或斜线上。 基本思路:将棋盘分为8行,每一行填充一个棋子,这样就能保证每一行不冲突,具体到每一行的话,又分为8种可 阅读全文
posted @ 2017-05-19 15:34 哦摩西罗伊 阅读(751) 评论(0) 推荐(0) 编辑
摘要:Prim算法主要的思路:将点集一分为二,通过找到两个点集之间的最短距离,来确定最小生成树,每次确定最短距离后,对两个点集进行更新。 具体的实现过程:难点就是如何找到两个点集之间的最短距离,这里设置两个数组,lowcost[i],mst[i],分别表示以i为终点的边和对应的起点,有了这两个数组就能够顺 阅读全文
posted @ 2017-04-28 20:16 哦摩西罗伊 阅读(881) 评论(0) 推荐(0) 编辑
摘要:迪杰斯特拉算法主要是产生从源点到其他点的最短路径,换句话说这些最短路径也有着长短的区别。 迪杰斯特拉算法的主要思路: 1.按照长短依次来产生最短路径。 2.并且在产生最短路径的过程中,用现有最短的最短路径来进行松弛操作。 具体实现的方法:数据结构:1个邻接矩阵啊a[n][n],1个一位数组dis[n 阅读全文
posted @ 2017-04-26 21:21 哦摩西罗伊 阅读(791) 评论(0) 推荐(0) 编辑
摘要:依旧把原来的烂代码翻出诶o(╯□╰)o。 排序二叉树的相关代码: 测试结果: 哈希表的有关操作: 测试结果: 阅读全文
posted @ 2017-04-08 22:09 哦摩西罗伊 阅读(402) 评论(0) 推荐(0) 编辑
摘要:大二时候写的烂代码,翻出来复习复习(o(╯□╰)o)。 代码: #include <stdio.h> #include <stdlib.h> #define Max_Size 100 struct Binode{ char res; struct Binode *lchild,*rchild; }; 阅读全文
posted @ 2017-04-02 20:44 哦摩西罗伊 阅读(426) 评论(0) 推荐(0) 编辑
摘要:苦逼的大三狗,现在面临升学和找工作的双重压力,没办法只有把原来写的烂代码重新找出来,整理一下,复习复习(o(╯□╰)o)。 代码: 测试结果: 还添加两个基本的功能: 链表的排序。 以及链表节点的删除。 阅读全文
posted @ 2017-03-21 21:19 哦摩西罗伊 阅读(373) 评论(0) 推荐(0) 编辑
摘要:嘛嘛嘛,好像大家在实现Kruskal算法是都是用的边集数组,判断图的连通性咱不会,o(╯□╰)o(并查集诶)。 Kruskal算法: 规则: (1)对每一条边按照从小到大进行排序。 (2)加入边的时候判断这条边与之前的边是否构成回路,如果构成则放弃这条边,否则就加入到最小生成树中。 边集数组: 起点 阅读全文
posted @ 2016-07-14 12:48 哦摩西罗伊 阅读(943) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示