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

广度优先算法
摘要:对于无向连通图,广度优先搜索是从图的某个顶点v0出发,在访问v0之后,依次搜索访问v0的各个未被访问过的邻接点w1,w2,…。然后顺序搜索访问w1的各未被访问过的邻接点,w2的各未被访问过的邻接点…。即从v0开始,由近至远,按层次依次访问与v0有路径相通且路径长度分别为1,2,…的顶点,直至连通图中... 阅读全文

posted @ 2015-11-19 16:51 奈何作贼 阅读(295) 评论(0) 推荐(0)

队列
摘要:import java.util.ArrayList;import java.util.List;/** * 像栈一样,队列也是表。 然而使用队列时插入在一端进行而删除则在另一端进行。 * * @author Thief * * @param */public class Queue { pri... 阅读全文

posted @ 2015-11-17 19:55 奈何作贼 阅读(180) 评论(0) 推荐(0)

深度优先算法
摘要:深度优先算法所遵循的搜索策略是尽可能“深”地搜索一个图。在深度优先搜索中,对于最新发现的定点,如果它还有以此为起点而未探测到的边,就沿此边继续探测下去。当顶点v的所有边都已被探寻过后,搜索将回溯到发现顶点v的点。这一过程一直进行到发现从源顶点可达的所有顶点位置为止。用java实现的深度优先算法代码如... 阅读全文

posted @ 2015-11-16 21:09 奈何作贼 阅读(483) 评论(0) 推荐(0)

摘要:import java.util.List;import java.util.ArrayList;/** * 栈是一种特殊的线性表。 * 其特殊性在于限定插入和删除数据元素的操作只能在线性表的一端进行。 */public class Stack { private List stack = new ... 阅读全文

posted @ 2015-11-14 16:34 奈何作贼 阅读(171) 评论(0) 推荐(0)

不使用临时变量,交换两个变量的值
摘要:涉及到两个变量值的交换,通常的做法是定义一个临时变量,然后再进行交换。利用异或运算,可以实现交换两个值,而不用临时变量。一.基础知识异或是一种基于二进制的位运算,用符号XOR或者^表示,其运算法则是对运算符两侧数的每一个二进制位,同值取0,异值取1。性质如下:交换律 (a^b = b^a)结合律 (... 阅读全文

posted @ 2015-10-17 17:28 奈何作贼 阅读(1085) 评论(0) 推荐(0)

导航