Javascript
 Computer >> コンピューター >  >> プログラミング >> Javascript

Javascriptでグラフを作成する


重みと有向型と無向型の両方をサポートするグラフクラスを作成します。これは、隣接リストを使用して実装されます。より高度な概念に移行すると、グラフの重みと方向性の両方が役立ちます。

隣接リストは、個別のリストの配列Aです。配列Aiの各要素はリストであり、頂点iに隣接するすべての頂点が含まれています。ノードとエッジの2つのメンバーを使用して定義しています。

クラスと、グラフにノードとエッジを追加するために使用するいくつかのメソッドを定義して、グラフクラスを設定しましょう。

最初に次のメソッドを定義します-

  • addNode:グラフにノードを追加します
  • addEdge:無向エッジをグラフに追加します
  • addDirectedEdge:有向エッジを追加します

class Graph {
   constructor() {
      this.edges = {};
      this.nodes = [];
   }
   addNode(node) {
      this.nodes.push(node);
      this.edges[node] = [];
   }
   addEdge(node1, node2) {
      this.edges[node1].push(node2);
      this.edges[node2].push(node1);
   }
   addDirectedEdge(node1, node2) {
      this.edges[node1].push(node2);
   }
   display() {
      let graph = ""; this.nodes.forEach(node => {
         graph += node + "->" + this.edges[node].join(", ") + "\n";
      });
      console.log(graph);
   }
}

これらのメソッドとクラスは、-

を使用してテストできます。

let g = new Graph();
g.addNode("A");
g.addNode("B");
g.addNode("C");
g.addNode("D");
g.addNode("E");
 
g.addEdge("A", "C");
g.addEdge("A", "B");
g.addDirectedEdge("A", "D");
g.addEdge("D", "E");

g.display();

出力

これにより、出力が得られます-

A->C, B, D
B->A
C->A
D->E
E->D

  1. 新しいキーワードでJavaScript配列を作成します。

    以下は、新しいキーワードを使用してJavaScript配列を作成するためのコードです- 例 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Document</title> <style&

  2. JavaScriptを使用して自動サイズ変更テキスト領域を作成する

    以下は、JavaScriptを使用して自動サイズ変更テキスト領域を作成するためのコードです- 例 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Document</title> <sty