zoukankan      html  css  js  c++  java
  • JavaScript实现图的深度广度优先遍历

    function Graph(v) {
    this.vertices = v;
    //初始化顶点
    this.edges = 0;
    //边数先设置为0
    this.adj = [];
    //为每一个顶点准备一个链表,表示它和所有节点的关系
    for (var i = 0; i < this.vertices.length; i++) {
    this.adj[i] = [];
    this.adj[i].push("");
    }
    this.addEdge = addEdge;
    this.toString = toString;
    }


    function addEdge(v, w) {
    //两个顶点组成一条边
    this.adj[v].push(w);
    this.adj[w].push(v);
    this.edges++;
    }

    function Graph(v) {
    this.vertices = v;
    //初始化顶点
    this.edges = 0;
    //边数先设置为0
    this.adj = [];
    //为每一个顶点准备一个链表,表示它和所有节点的关系
    for (var i = 0; i < this.vertices.length; i++) {
    this.adj[i] = [];
    this.adj[i].push("");
    }
    this.addEdge = addEdge;
    this.toString = toString;
    }


    function addEdge(v, w) {
    //两个顶点组成一条边
    this.adj[v].push(w);
    this.adj[w].push(v);
    this.edges++;
    }


    function ShowGraph() {
    for (var i = 0; i < this.vertices; i++) {
    print(i + "=>");
    for (var j = 0; j < this.vertices; ++j) {

    if (this.adj[i][j] != "undefined") {
    print(this.adj[i][j]);
    }

    }
    }
    }

    function dfs(v) {
    this.marked[v] = true;
    if (this.adj[v] != undefined) {
    print(v);
    }
    for (var key in adj[v]) {
    if (!this.marked[w]) {
    this.dfs(w);
    }
    }
    }


    function bfs(node) {
    var queue = [];
    this.marked[node] = true;
    queue.push(node);
    while (queue.length > 0) {
    var v = queue.shift();//移出队列
    if (v == undefined) {
    print(v);
    }
    for (var w in this.adj[v]) {
    if (!this.marked[w]) {
    this.edgeTo(w) = v;
    this.marked[w] = true;
    queue.push(w);
    }
    }
    }
    }

  • 相关阅读:
    SOFA 源码分析 — 自动故障剔除
    Pod——状态和生命周期管理及探针和资源限制
    pause的作用
    k8s-部署策略
    linux-删除一个目录下的所有文件,但保留某个或者多个指定文件
    k8s-gitlab搭建
    git中报unable to auto-detect email address 错误的解决拌办法
    k8s-secret用法
    k8s-traefik默认80端口
    nginx和apache区别
  • 原文地址:https://www.cnblogs.com/aobama/p/4347543.html
Copyright © 2011-2022 走看看