Quick actions

cmd+k|ctrl+k

Navigation

Languages

Graphs

Snippet info

Language

Dart

Visibility

public

Author

obihenry578

Created

2025-02-22T07:14:25.803094Z

Updated

2025-02-22T07:14:25.803094Z

// Edge list = 
// const graph = [[0,1],[2,3],[2,1],[1,3]];

// Adjacent List
// const graph = [[2],[2,3],[0,1.3],[1,2]];

// Adjacent matrix
// const graph = 
// [[0,0,1,0],
// [0,0,1,1],
// [1,1,0,1],
// [0,1,1,0]];


class Graph { 
    dynamic numberOfNodes;
    Map? adjacentList;
  Graph() { 
    this.numberOfNodes = 0;
    this.adjacentList = {
    }; 
  } 
  addVertex( node)  { 
    if (!adjacentList!.containsKey(node)) {
      adjacentList![node] = [];
    }
      numberOfNodes++;
  } 
  addEdge(node1, node2) { 
    //undirected Graph 
     adjacentList![node1].add(node2);
     adjacentList![node2].add(node1);
  } 
  showConnections() { 
     adjacentList!.forEach((key, value) {
    print('$key --> $value');
  });
} 
} 


void main() {
    Graph myGraph = new Graph();
myGraph.addVertex('0');
myGraph.addVertex('1');
myGraph.addVertex('2');
myGraph.addVertex('3');
myGraph.addVertex('4');
myGraph.addVertex('5');
myGraph.addVertex('6');
myGraph.addEdge('3', '1'); 
myGraph.addEdge('3', '4'); 
myGraph.addEdge('4', '2'); 
myGraph.addEdge('4', '5'); 
myGraph.addEdge('1', '2'); 
myGraph.addEdge('1', '0'); 
myGraph.addEdge('0', '2'); 
myGraph.addEdge('6', '5');

myGraph.showConnections(); 
//Answer:
// 0-->1 2 
// 1-->3 2 0 
// 2-->4 1 0 
// 3-->1 4 
// 4-->3 2 5 
// 5-->4 6 
// 6-->5
}
INFO