JavaScript图的基本构建

本文介绍了图在系统建模中的应用,通过构建简单的图实例,展示了如何使用图来表示现实世界中的各种关系。从交通流量到复杂网络,图提供了一种直观且强大的方式来理解和解决问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

引言

利用图,可以对生活中很多系统进行建模。比如交通流量,顶点表示道路交叉点,边表示街道,边的权值可以表示限速信息等。通过一定算法可得到最优路线巴拉巴拉······除此外还有很多很多系统可以通过图来建模,只要你敢想,just do it.
代码不会骗人,结果就是证据。
对以下图进行构建,目前暂不考虑权。要发展,首先得有图啊啊啊啊················

这里写图片描述


构建

 var g= new Graph(5);
    g.addEdge(0,1);
    g.addEdge(0,2);
    g.addEdge(0,4);
    g.addEdge(1,4);
    g.addEdge(1,3);
    g.addEdge(3,4);
    g.showGraph();

        /**
         *  构建图类
         *  parameters:vertices    顶点数
         *            edges    边数
         *            adj    存储相邻顶点的数组(邻接表数组,一个二维数组,如adj[1]表示存储顶点1的邻接表)
         *  function:addEdge    添加相邻顶点
         **/
        function Graph(v) {
            this.vertices = v;
            this.edges = 0;
            this.adj = [];
            for (var i = 0; i < this.vertices; i++) {
                this.adj[i] = [];
                this.adj[i].push('');
            }
            this.addEdge = addEdge;
            this.showGraph = showGraph;
        }
        /**
         *  添加相邻顶点v,w
         *  在adj[v](v顶点的邻接表里添加w)
         *  相应的在adj[w](w顶点的邻接表里添加v)
         *  两个顶点建立了连接关系,则全图将增加一条边
         **/
        function addEdge(v, w) {
            this.adj[v].push(w);
            this.adj[w].push(v);
            this.edges++;
        }
        /**
        *显示图
        **/
        function showGraph(){
        	var str=[];
          for(var i = 0; i < this.vertices; i++){
            str.push('\n'+i+'->');
            for(var j = 0; j < this.vertices; j++){
              if(this.adj[i][j]!=undefined){
                str.push(this.adj[i][j]);
              }
            }
          }
          console.log(str.join());
        }

这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值