diff --git a/node-concepts/src/leetcodes/src/graph/adjacency-list/index.ts b/node-concepts/src/leetcodes/src/graph/adjacency-list/index.ts new file mode 100644 index 0000000..664c0c2 --- /dev/null +++ b/node-concepts/src/leetcodes/src/graph/adjacency-list/index.ts @@ -0,0 +1,27 @@ +type AdjacencyList = { + [node in 'A' | 'B' | 'C' | 'D' | 'E' | 'F']: string[]; +}; + +/** Example Adjacency List */ +const graph: AdjacencyList = { + A: ['B', 'C'], + B: ['A', 'D', 'E'], + C: ['A', 'F'], + D: ['B'], + E: ['B', 'F'], + F: ['C', 'E'], +}; + +/** Add Edge */ +function addEdge(graph: AdjacencyList, node1: string, node2: string) { + if (!graph[node1]) graph[node1] = []; + + if (!graph[node2]) graph[node2] = []; + + graph[node1].push(node2); + graph[node2].push(node1); +} + +addEdge(graph, 'G', 'H'); + +console.log('graph -> ', graph);