早上上班路上,看到一则新闻,广州的。新闻说的是一个辅警在路边查过往路人的身份证,其中有一个记者,就询问,根据哪条法律要查询他的身份证。辅警当然不知道(事后据说,就是闲着无聊,查着玩的!),也肯定不会认错,就强行把记者带到当地的派出所,以妨碍公务为由进行拘留。记者被放出来后,就写了一篇关于这件事情的文章,引起了极大的关注。

这件事情的结局是好的,事件并没有恶化。有网友就感叹,记者命好。没有对比就没有伤害,网友就贴出了2013年3月份的一起

类似事件,该事件当时轰动全国,即大学毕业生孙志刚因在广州未随身携带身份证暂住证等证件,被辅警带入派出所,随后遣送到收容所,又被送到救治所,最终在救治所被杀害。

看完,我也是非常震惊,更感觉到恐惧。朗朗乾坤,竟然还有这样的事情在我们不知道的黑暗角落发生。我也非常难以理解,施暴者是以什么样的心里,对一个和自己无冤无仇的人下如此重手,取人性命!

我想到曾经看过的一件事情,美国的一家为空军生产降落伞的公司,每批产品总有几个不合格的,这也导致了每次都有士兵不是死在了敌人的手里,死在了自家的降落伞手里。美国人很珍惜生命的。有个将军,我忘记叫什么了,可能是麦克阿瑟啥的,就对这个问题提出了解决方案。在检验降落伞的质量时,随机的从这家降落伞公司的员工中抽几个人,再随机抽几个降落伞,让这些员工试用。从此以后,美国再也没有发生过降落伞不合格的问题。

人性是有缺点的,比如人是自私的,人是趋利避害的,人都有惰性等等。

小到公司,组织,大到政府,国家,我觉得制度最重要。相信制度,按制度办事,而不是相信某个人,按人情办事。

package eight21one;import org.junit.Test;/*** 我的栈* 郭胜* 栈的特点是:先进后出* @author 180719-2**/
public class MyStack {private int[] stack;private int pointer;public MyStack(){stack = new int[10];}/*** 压栈* 郭胜*/public void push(int val){if(pointer >= stack.length){throw new IndexOutOfBoundsException();}stack[pointer++] = val;}/*** 查看栈顶部的数据,但不移除* 郭胜*/public int peek(){if(isEmpty()){return -1;}return stack[pointer - 1];}/*** 弹出栈顶部数据,并移除* 郭胜* @return*/public int pop(){if(pointer <= 0){throw new IndexOutOfBoundsException();}int tmp = stack[--pointer];return tmp;}/*** 判断栈是否为空* @return*/public boolean isEmpty(){if(pointer == 0){return true;}return false;}@Testpublic void test(){MyStack ms = new MyStack();for(int i =0;i<10;i++){ms.push(i);}System.out.println(ms.pointer);for(int i=0;i<10;i++){System.out.println(ms.pop());}System.out.println(ms.pointer);System.out.println(ms.isEmpty());System.out.println(ms.peek());System.out.println(ms.pointer);}}
package eight21one;import org.junit.Test;/*** 我的队列* 队列的特点:先进先出* 郭胜* @author 180719-2**/
public class MyQueue {private int[] queue;private int insertPointer;private int fetchPointer;public MyQueue(){queue = new int[10];}/*** 插入方法* 郭胜* @param val*/public void insert(int val){if(insertPointer >= queue.length){throw new IndexOutOfBoundsException();}queue[insertPointer++] = val;}/*** 取出数据,并将取出的数据移除* 郭胜* @return*/public int fetch(){if(fetchPointer > insertPointer){throw new IndexOutOfBoundsException();}return queue[fetchPointer++];}/*** 判断队列是否为空* 郭胜* @return*/public boolean isEmpty(){if(fetchPointer >= insertPointer){return true;}return false;}@Testpublic void test(){MyQueue mq = new MyQueue();for(int i=0;i<10;i++){mq.insert(i);}System.out.println(mq.insertPointer);for(int i=0;i<10;i++){System.out.println(mq.fetch());}System.out.println(mq.isEmpty());}
}
package eight21one;/*** 数据结构:图* 顶点* 郭胜* @author 180719-2**/
public class Vertex {public char label;//图的顶点标记public boolean flag = false;//标记是否已查找,false为未查找,true为已查找public Vertex(char label){this.label = label;}
}
package eight21one;/*** 数据结构* 图* 郭胜* @author 180719-2**/
public class Graph {private Vertex[] vertexs;//顶点的集合private int[][] matrix;//图中顶点的边  二维数组 标记从一个顶点到另一个顶点是否能走通private int maxSize = 10;//最大顶点数private int current;//当前节点public Graph(){vertexs = new Vertex[maxSize];matrix = new int[maxSize][maxSize];for(int i=0;i<maxSize;i++){//初始化二维数组for(int j=0;j<maxSize;j++){matrix[i][j] = 0;}}}/*** 添加顶点* 郭胜* @param v*/public void addVertexs(char v){if(current >= vertexs.length){throw new IndexOutOfBoundsException();}vertexs[current++] = new Vertex(v);}/*** 添加边* 郭胜*/public void addEdge(int v1,int v2){matrix[v1][v2] = 1;matrix[v2][v1] = 1;}/*** 图的搜索之一:深度优先搜索* 规则:* 1.如果可能,访问一个邻接的未访问过的顶点,标记它,并把它放入栈中;* 2.当不能执行规则1时,如果栈不为空,就从栈中弹出一个顶点;* 3.当不能执行规则1和规则2时,就完成了整个搜索。*/public void dfs(){MyStack ms = new MyStack();ms.push(0);vertexs[0].flag = true;while(!ms.isEmpty()){int i = getAdjoinVertex(ms.peek());if(i == -1){ System.out.println(vertexs[ms.peek()].label);ms.pop();}else{ms.push(i);} }for(int i=0;i<current;i++){vertexs[i].flag = false;}}/*** 图的搜索之一:广度优先搜索* 规则:* 1.访问下一个邻接的未访问过的顶点,这个顶点必须是当前节点的邻接点,标记它,并把它插入到队列中;* 2.如果无法执行规则1,那么就从队列头取出一个顶点,并使其作为当前顶点;* 3.当队列为空不能执行规则2时,就完成了整个搜索过程。*/public void bfs(){MyQueue mq = new MyQueue();mq.insert(0);vertexs[0].flag = true;while(!mq.isEmpty()){int i = mq.fetch();while(true){int j = getAdjoinVertex(i);if(j != -1){mq.insert(j);}else{break;}}System.out.println(vertexs[i].label);}}/*** 最小生成树* 郭胜*/public void mst(){MyStack ms = new MyStack();ms.push(0);vertexs[0].flag = true;while(!ms.isEmpty()){int i = getAdjoinVertex(ms.peek());if(i == -1){ ms.pop();}else{System.out.println();System.out.print(vertexs[ms.peek()].label);System.out.print("-");System.out.print(vertexs[i].label);System.out.println();ms.push(i);} }for(int i=0;i<current;i++){vertexs[i].flag = false;}}/*** 根据一个顶点找到与它相邻的顶点,并返回* 郭胜* @param v* @return*/public int getAdjoinVertex(int v){for(int i=0;i<maxSize;i++){if(matrix[v][i] == 1 && !vertexs[i].flag){vertexs[i].flag = true;return i;}}return -1;}}
package eight21one;import org.junit.Test;public class GraphTest {@Testpublic void test(){Graph g = new Graph();g.addVertexs('a');g.addVertexs('b');g.addVertexs('c');g.addVertexs('d');g.addVertexs('e');g.addVertexs('f');g.addEdge(0, 1);g.addEdge(0, 2);g.addEdge(1, 3);g.addEdge(2, 3);g.addEdge(2, 4);g.addEdge(3, 4);g.addEdge(3, 5);//g.dfs();//g.bfs();g.mst();}
}

数据结构 图 简单入门 最小生成树 深度优先搜索 广度优先搜索相关推荐

  1. 邻接矩阵的深度优先和广度优先搜索

    c语言中图的邻接矩阵的深度优先和广度优先搜索 #include<stdio.h> #include<stdlib.h> typedef struct {int vexs[7]; ...

  2. 6.1 图的深度优先和广度优先搜索

    图的广度优先搜索 图的的搜索算法主要分为广度优先搜索(breadth-first search或BFS)和深度优先搜索(depth-first search或DFS).首先讨论广度优先搜索算法. 称之 ...

  3. Python 实现图的深度优先和广度优先搜索

    在介绍 python 实现图的深度优先和广度优先搜索前,我们先来了解下什么是"图". 1 一些定义 顶点 顶点(也称为"节点")是图的基本部分.它可以有一个名称 ...

  4. 图的遍历——深度优先搜索+广度优先搜索

    一:图的遍历--深度优先搜索 在本文其他内容中只是大体概括了主要的图论内容,更加详细的代码实现及算法分析在此给出. 深度优先搜索(DFS)类似树的先序遍历. 假设初始状态是图中所有顶点未曾被访问,则深 ...

  5. 深度优先搜索广度优先搜索

    1 概述 算法是作用于具体的数据结构之上的,深度优先搜索算法和广度优先搜索算法都是基于图这种数据结构的.主要原因是因为图的这种数据结构表达能力很强,大部分涉及搜索的场景都可以抽象成图. 图上的搜索算法 ...

  6. 深度优先搜索 广度优先搜索理解

    深度优先搜索广度优先搜索 1. 什么是 "搜索" 算法 我们知道,算法都是作用于某种具体的数据结构上的,而深度优先搜索算法和广度优先搜索算法就是作用于图这种数据结构的. 图上的搜索 ...

  7. 深度优先和广度优先搜索

    目录 前言 1 深度优先搜索 2 广度优先搜索 3 深度优先和广度优先的比较 前言 最近面试,被问到了深度优先和广度优先搜索,这个我似曾相识,曾经大学的时候学到过,但是由于这几年的工作都未接触到,所以 ...

  8. 数据结构与算法(python):广度优先搜索(Breadth First Search,BFS)和深度优先算法(Depth First Search,DFS)

    参考自 MOOC数据结构与算法Python版 目录 一.广度优先搜索 1.1 BFS算法过程 1.2 广度优先搜索算法分析 二.深度优先搜索 2.1 骑士周游 2.1.1 问题定义 2.1.2 构建骑 ...

  9. 深度优先搜索/广度优先搜索

    来源 深度优先搜索算法:(DFS) 是一种用于遍历或搜索树或图的算法.沿着树的深度遍历树的节点,尽可能深的搜索树的分支.当节点v的所在边都己被探寻过,搜索将回溯到发现节点v的那条边的起始节点.这一过程 ...

最新文章

  1. 商务智能 “软肋”何在?
  2. java监视器_监视和管理备份系统
  3. shell编程之特殊变量
  4. P1476 休息中的小呆
  5. 查看本机所有请求_【松勤教育】Fiddler抓包-只抓APP的请求
  6. python字典遍历 没有顺序_Python实现字典的遍历与排序功能示例
  7. 电脑主页面上的计算机没了,电脑界面上的internet explorer 没有了
  8. Telnet 窗口看不见字符
  9. 蚂蚁课堂视频笔记思维导图-4期 一、微服务技术
  10. 【毕业设计论文】(软件类专业)规范写作以及查重篇
  11. 小米cc9出厂线刷包_小米cc9 pro刷机教程,线刷升级更新官方系统包
  12. 考拉兹猜想(Python版)
  13. java swing choice_Java-GUI基础(三)java.swing
  14. 开源软件中的TOP10
  15. 华哥倒酒(二分答案)
  16. 干货 | 敏捷培训必备小游戏,都在这里了!
  17. Android开发笔记(一百四十八)自定义输入法软键盘
  18. C++中vector容器和普通数组的区别
  19. 数据分析之Excel的基本功能(上)
  20. module ‘win32com.gen_py.00020813-0000-0000-C000-000000000046x0x1x9‘ has no attribute ‘CLSIDToClassM

热门文章

  1. 破译姚明财富密码:屏蔽所有日本赞助商
  2. 计算机科技文化节答辩活动主持稿,校园科技文化节
  3. linux读取手机文件,linux at命令和batch从输入或指定文件读取命令
  4. oracle 排序太慢,Oracle 排序优化
  5. 照妖镜:一个工具的自我超越
  6. Harmattan:一款时尚的Linux桌面伴侣
  7. Excel图纵坐标单位修改
  8. 开关控制元器件光耦,三极管,MOS管,继电器
  9. C++函数指针、函数对象与C++11 function对象对比分析
  10. 计算机一级打字体大字母怎么打,键盘打字母出现数字,小编教你电脑键盘打字母出现数字怎么办...