邻接表的特点:
1、n个顶点、e条边的无向图的存储空间是n+2e
2、无向图顶点的度是第i个单链表上结点的个数
3、邻接表适用于稀疏图
4、如果要判断任意两顶点是否有边或弧,需要搜索所有的边链表
邻接表的属性

public static final int INF = 32768;    // 极大值
public static final int MAX_VERTEX_NUM = 20;    // 最大顶点数
public static int VEXNUM; // 顶点的个数
public static int ARCNUM; // 边的个数
public static VexNode[] vexs;   // 顶点集合class VexNode { // 顶点结点String data;    // 顶点名称ArcNode firstarc;    // 边集合的指针
}class ArcNode { // 边结点String adjvex;  // 边的邻接顶点int info;   // 权值信息ArcNode nextarc; // 边结点的指针
}

创建一个有向图

 public void CreateGraph(){  // 创建一个有向图Scanner sc = new Scanner(System.in);System.out.print("请输入顶点的个数:");VEXNUM = sc.nextInt();  // 输入顶点的个数System.out.print("请输入边的个数:");ARCNUM = sc.nextInt();  // 输入边的个数// 初始化顶点集合vexs = new VexNode[VEXNUM];System.out.print("请输入顶点:");for (int i = 0; i < VEXNUM; i++) {vexs[i] = new VexNode(sc.next(), null);}// 初始化边集合for (int i = 0; i < ARCNUM; i++) {System.out.print("请输入(v1,v2):");String v1 = sc.next();String v2 = sc.next();int x1 = Locate(v1);System.out.printf("请输入(%s, %s)的权值:", v1, v2);int info = sc.nextInt();    // 边权值信息ArcNode arcNode = new ArcNode(v2, info, vexs[x1].firstarc); // 创建新的结点并连接到邻接表vexs[x1].firstarc = arcNode;}}

定位顶点v0的位置

    // 定位v0所在集合的位置public int Locate(String v0) {for (int i = 0; i < VEXNUM; i++) {if (v0.equals(vexs[i].data)){return i;}}return -1;}

邻接表(Adjacency List)相关推荐

  1. 图(一)之邻接表Adjacency List

    开始攻克图的算法,先从最简单的存储开始实现,本文关于邻接表的实现. 邻接表是图的存储中最简单也是最基本的存储结构,基于链表的思想实现的.在邻接表中,对于中的每个顶点建立一个单链表,第i个单链表中的节点 ...

  2. MySQL—通过Adjacency List(邻接表)存储树形结构

    转载自:Mysql通过Adjacency List(邻接表)存储树形结构 今天来看看一个比较头疼的问题,如何在数据库中存储树形结构呢?像mysql这样的关系型数据库,比较适合存储一些类似表格的扁平化数 ...

  3. (数据结构)无向图的邻接多重表(Adjacency Multilist)表示

    邻接多重表(Adjacency Multilist)是无向图的另一种链式存储结构 图的邻接表(Adjacency List)表示 有向图的十字链表(Orthogonal List)表示 我们在使用邻接 ...

  4. 【转载】邻接表表示法

    图的邻接表表示法 图的邻接表表示法类似于树的孩子链表表示法.对于图G中的每个顶点v i ,该方法把所有邻接于v i 的顶点v j 链成一个带头 结点的单链表,这个单链表就称为顶点v i 的邻接表(Ad ...

  5. 有向图的邻接表表示法

    图的邻接表表示法类似于树的孩子链表表示法.对于图G中的每个顶点vi,该方法把所有邻接于vi的顶点vj链成一个带头结点的单链表,这个单链表就称为顶点vi的邻接表(Adjacency List). 1. ...

  6. 有向图的邻接表描述 c++

    有向图的邻接表表示法 图的邻接表表示法类似于树的孩子链表表示法.对于图G中的每个顶点vi,该方法把所有邻接于vi的顶点vj链成一个带头结点的单链表,这个单链表就称为顶点vi的邻接表(Adjacency ...

  7. 图 邻接表 建立 深度遍历 广度遍历

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 图的邻接 ...

  8. 分别用邻接矩阵和邻接表实现图的深度优先遍历和广度优先遍历_数据结构|图的邻接表与深度、广度优先搜索

    线性存储元素时,元素的关系也同时确定了.而非线性数据结构就不同了,需要同时考虑存储数据元素和数据元素的关系. 由于图的结构比较复杂,任意两个顶点之间都可能存在联系,因此无法以数据元素在存储区中的物理位 ...

  9. 使用邻接表创建无向图和有向图

    图的邻接表表示法: 邻接表(Adjacency List) 是图的 一 种链式存储结构.在邻接表中,对图中每个顶点V建立一个单链表,把与 V相邻接的顶点放在这个链表中.邻接表中每个单链表的第一个结点存 ...

  10. 【图】什么是图?无向图怎么存储?邻接表和邻接矩阵如何用代码存储图?

    目录 一.概念 图是什么 各种图的定义 二.图的存储结构 邻接矩阵 邻接表 三.代码实现图的存储 1.无向图存储 2.邻接矩阵存储图 核心代码 完整代码 3.邻接表存储有向图(不含权重) 核心代码 完 ...

最新文章

  1. ORACLE 数据的逻辑组成
  2. Linux下覆盖目录的方法
  3. java 革命_JAVA数据库连接池的革命 -- 从BoneCP到HikariCP(转)
  4. Ubuntu 12.04 root用户登录设置
  5. remote: Incorrect username or password ( access token )
  6. RabbitMQ生产者和消费者Java实现
  7. 用代码复杂度分析风险
  8. Python数据结构实战——哈希表(HashTable)
  9. 《语音识别技术》.ppt
  10. Debian系统关闭iptables的conntrack跟踪
  11. 敏捷开发宣言 (一)
  12. 解决nginx服务器显示txt文本为乱码的问题
  13. 刀片服务器显示如何切换,刀片机服务器切换
  14. PHP-基于ipip.net制作的IP查询接口源码
  15. Python-Cartopy制图学习02-中国2010年5月干旱情况空间制图
  16. Php—— 1.apache2.4.x+php7.x
  17. 第二工业大学计算机应用大专录取分,上海第二工业大学2017年分省分专业录取分数线...
  18. 大数据日志分析Hadoop项目实战
  19. 基于java的志愿信息管理系统_基于jsp的志愿者管理系统-JavaEE实现志愿者管理系统 - java项目源码...
  20. 八月十一上午笔记钊哥第一节课

热门文章

  1. 麻瓜编程python爬虫微专业_网易微专业Python Web开发工程师课程下载
  2. 高德地图大头针功能_有关于高德地图的大头针下落动画。还有就是高德地图的设置...
  3. 计算机无法接入工作网络,局域网中电脑无法连接网络怎么处理
  4. 1020寒星孤月-蛇形矩阵
  5. Image-Guided Navigation of a Robotic Ultrasound Probe for Autonomous Spinal Sonography Using a
  6. 兼容微信字体变大,页面错乱问题
  7. 大鱼吃小鱼java程序设计
  8. python来爬取煎蛋网随手拍小姐姐图片
  9. 笔记本使用HDMI连接显示器没反应
  10. 程序员谨防加班猝死的十大建议