JavaScript数据结构——图(Graph)

本文介绍了图的概念和结构,重点讲解了无向图,并详细阐述了如何使用JavaScript实现无向图,包括添加顶点、添加边、打印邻接表、广度优先遍历、获取最短路径和深度优先遍历等操作。
摘要由CSDN通过智能技术生成

概念和结构

  • 图是由顶点和连接顶点的构成的,通常将数据元素称为顶点,顶点之间的关系称为边。
  • 图分为两种,一种是有向图,另一种是无向图。
    在这里插入图片描述
  • 图常用的表示方法有两种,一种是邻接矩阵,另一种是邻接表。因为邻接矩阵会占用更多的内存,而且进行添加和删除操作会很麻烦,所以这里我们实现邻接表。
    在这里插入图片描述
    在这里插入图片描述
  • 我们这里实现无向图

无向图的操作

无向图有六种常用操作,分别为

  1. 添加顶点 addVertex(v)
  2. 添加边 addEdge(a,b)
  3. 打印邻接表 print()
  4. 广度优先遍历 bfs(v,callback)
  5. 获取最短路径 shortestPath(from,to)
  6. 深度优先遍历 dfs(v,callback)

JS实现无向图

JS里面的树结构需要通过对象(object)和数组(array)来实现,其中,对象用来存放边,数组用来存放顶点。

var Graph = function(){
    //存储顶点
    var vertexes = [];
    //存储边
    var edges = {};

    //添加顶点
   
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值