数据结构与算法
cyywxy
这个作者很懒,什么都没留下…
展开
-
邻接矩阵
图的邻接矩阵(Adjacency Matrix)存储方式是用两个数组来表示图。一个一维的数组存储图中顶点信息,一个二维数组(称为邻接矩阵)存储图中的边或弧的信息。设图G有n个顶点,则邻接矩阵是一个n*n的方阵,定义为: 我们来看一个实例,图7-4-2的左图就是一个无向图。 我们再来看一个有向图样例,如图7-4-3所示的左图。 在图的术语中,我们提到了网的概念,也就是每条边上都带有权的图叫做网。转载 2017-10-19 17:13:50 · 1441 阅读 · 0 评论 -
邻接表
对于图来说,邻接矩阵是不错的一种图存储结构,但是我们也发现,对于边数相对顶点较少的图,这种结构是存在对存储空间的极大浪费的。因此我们考虑另外一种存储结构方式:邻接表(Adjacency List),即数组与链表相结合的存储方法。邻接表的处理方法是这样的。1、图中顶点用一个一维数组存储,另外,对于顶点数组中,每个数据元素还需要存储指向第一个邻接点的指针,以便于查找该顶点的边信息。2、图中每个顶点vi的转载 2017-10-19 17:17:25 · 5669 阅读 · 0 评论 -
深度优先搜索
邻接表: 0 1 2 5 6 1 0 2 0 3 4 5 4 3 5 6 5 0 3 4 6 0 4深度优先遍历: 0 -> 1 1没有其他邻接点,退回到0,遍历0的下一个邻接点2 0 ->1 ->2 2没有其他邻接点,退回到0,遍历0原创 2017-10-19 18:08:57 · 209 阅读 · 0 评论 -
深度优先搜索之寻找路径
算法思想:数组edgeTo下标为下一个public class DepthFirstSearch { private boolean[] marked; **private int[] edgeTo;//从起点到一个顶点的已知路径上的最后一个点** private final int s;//起点 public DepthFirstSearch(Graphics G,i原创 2017-10-19 20:31:54 · 1534 阅读 · 0 评论 -
广度优先搜索
/** * 算法思想: * 1.将起点放入队列,弹出队列 * 2.将起点的所有邻接点加入队列 * 3.将队列中的第一个顶点弹出,将其所有邻接点加入队列............直到队列为空 * */ public class BreadthFirstSearch { private boolean[] marked; p原创 2017-10-20 16:40:40 · 157 阅读 · 0 评论 -
查找单链表的中间节点
思路:快慢指针,快指针是慢指针的两倍分析: 两个人赛跑,如果A速度是B的2倍,那么,当A到达终点的时候,B刚好到中间位置(这种思想很重要)class Node{ int val; Node next; public Node(int val){ this.val = val; }}public class List { public static voi...原创 2018-04-19 14:18:18 · 387 阅读 · 0 评论