图是一种以网络形式相互连接的节点,图是一种与树有些相似的数据结构,图通常有一个固定的形状, 这是由物理或抽象的问题所决定的。图包含由边连接的顶点。
类型,无向图,有向图(边有方向,通常用箭头表示)
图可以用两种形式表示,邻接矩阵,邻接表,邻接矩阵或邻接表提供了关于当前顶点的位置信息,当前 顶点通过边与哪些顶点相连。
深度优先搜索 在搜索到尽头的时候,深度优先搜索使用栈标记下一步的走向。 栈的内容就是从起始顶点到各个顶点访问的整个过程,从起始顶点出发访问下一个顶点时,就把这个顶 点入栈,回到起始顶点时,出栈。深度优先算法要得到距离起始点远的顶点,然后在不能继续前进的 时候返回。
广度优先搜索 在广度优先搜索中,算法要尽可能的靠近起始点,它首先访问起始顶点的所有邻接点,然后在访问较远 的区域,用队列实现。
算法要点: 从一个顶点开始,把它放入树的集合中,然后重复做下面的事情:
1.找到从新的顶点到其他顶点的所有边,这些顶点不能在树的集合中。把这些边放入优先级队列。
2.找出权值小的边,把它和它所到达的顶点放入树的集合中。 重复,直到所有顶点都在树的集合中。
效率 如果使用邻接矩阵,各种算法大约需要O(VV)时间级,V是顶点的数量。因为这些算法几乎都遍历了一遍 所有顶点,具体方法是在邻接矩阵中扫描每一行,依次查看每条边。即邻接矩阵的每个单元,一共有VV 个单元都被扫描过。对于规模大的矩阵O(V*V)时间级的性能并不好。如果图是密集的,性能就很难提高。 然而对于稀疏的图来说,使用邻接表的方法代替邻接矩阵,可以提高性能,因为这样不用浪费时间来检 索邻接矩阵中没有边的单元。
实战
实现广度和深度优先搜索 :





上一篇:java中的数据结构——栈

java中的数据结构——图相关推荐

  1. 动图 + 源码,演示 Java 中常用数据结构执行过程及原理

    最近在整理数据结构方面的知识, 系统化看了下Java中常用数据结构, 突发奇想用动画来绘制数据流转过程. 主要基于jdk8, 可能会有些特性与jdk7之前不相同, 例如LinkedList Linke ...

  2. 数据结构中缀表达式转后缀表达式与后缀表达式的求值实训报告_动图+源码,演示 Java 中常用数据结构执行过程及原理...

    程序员的成长之路互联网/程序员/成长/职场 关注 阅读本文大概需要 3.7 分钟. 作者:大道方圆cnblogs.com/xdecode/p/9321848.html 最近在整理数据结构方面的知识, ...

  3. 动图+源码,演示 Java 中常用数据结构执行过程及原理

    程序员的成长之路 互联网/程序员/成长/职场 关注 阅读本文大概需要 3.7 分钟. 作者:大道方圆 cnblogs.com/xdecode/p/9321848.html 最近在整理数据结构方面的知识 ...

  4. java中的数据结构——树

    树 树形结构是一种层级式的数据结构,由节点和连接它们的边组成, java语言编写的程序中常常用引用来表示边.根是树中顶端的节 点:它没有父节点.节点表示保存在树中的数据对象.非平衡树是 指根左边的后代 ...

  5. java中的数据结构之HashMap学习

    java中的数据结构之HashMap学习 equal与hashcode equals与hashcode的源码 为什么hashmap中作为键值的类要重写hashcode和equals方法 Integer ...

  6. JAVA 中的数据结构

    Java 数据结构 Java工具包提供了强大的数据结构.在Java中的数据结构主要包括以下几种接口和类: 枚举(Enumeration) 位集合(BitSet) 向量(Vector) 栈(Stack) ...

  7. [转]详细介绍java中的数据结构

    详细介绍java中的数据结构 本文介绍的是java中的数据结构,本文试图通过简单的描述,向读者阐述各个类的作用以及如何正确使用这些类.一起来看本文吧! 也许你已经熟练使用了java.util包里面的各 ...

  8. 【Java】图解 Java 中的数据结构及原理

    原文:http://www.javastack.cn/article/2018/data-structure-and-the-principle-diagram/ 最近在整理数据结构方面的知识, 系统 ...

  9. 图解 Java 中的数据结构及原理,傻瓜也能看懂!

    最近在整理数据结构方面的知识, 系统化看了下Java中常用数据结构, 突发奇想用动画来绘制数据流转过程. 主要基于jdk8, 可能会有些特性与jdk7之前不相同, 例如LinkedList Linke ...

  10. 图解java_图解 Java 中的数据结构及原理!

    作者:大道方圆 cnblogs.com/xdecode/p/9321848.html 最近在整理数据结构方面的知识, 系统化看了下Java中常用数据结构, 突发奇想用动画来绘制数据流转过程. 主要基于 ...

最新文章

  1. ubantu14.04下固定ip的配置方法以及问题处理
  2. ML之MLiR:利用多元线性回归法,从大量数据(csv文件)中提取五个因变量(输入运输任务总里程数、运输次数、三种不同的车型,预测需要花费的小时数)来预测一个自变量
  3. 解析提高PHP执行效率的50个技巧(转)
  4. 使用httpclient发送get请求
  5. 概率论与数理统计 重点篇
  6. 关于百度移动端搜索中结果聚合的几个常见案例分析
  7. jsp+ssm+mysql实现的校园二手市场交易平台视频教程
  8. LeetCode 520. Detect Capital
  9. SAP PS 第19节 里程碑开票
  10. NSIS静默安装VC运行库插件
  11. 计算机无法检测更新失败怎么办,Windows更新错误解决方案
  12. 解决Chrome 内置的翻译功能翻译用不了
  13. 画仓鼠大赛 评比开始!
  14. Unity 2D游戏制作
  15. Thinkphp 5.0 购物网站
  16. 什么叫做石英表_石英表是什么意思?
  17. Spring - 数据库读写分离
  18. 中国石油大学(北京)-《石油加工工程》第三阶段在线作业
  19. [洛谷]P2525 Uim的情人节礼物·其之壱
  20. 华为AP无线局域网配置步骤

热门文章

  1. python科学计算最佳实践_Python科学计算最佳实践 SciPy指南:Python
  2. 多媒体会议系统中的延迟
  3. 面向对象三大特性之——封装
  4. python列表去重_python列表的去重
  5. MFC中获取各个窗口(对话框)之间的指针、对象、句柄
  6. 安卓源代码_如何从在安卓Android手机获取微信小程序源代码
  7. 超详细中文车牌识别开源库EasyPR入门实战(win10_VS2019_opencv34)
  8. Python语言三种优点。
  9. 在VBA中调用Windows API的方法
  10. linux视频教程百度网盘分享