undirected-graph-typed 2.4.4 → 2.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (85) hide show
  1. package/README.md +0 -63
  2. package/dist/cjs/index.cjs +1067 -185
  3. package/dist/cjs/index.cjs.map +1 -1
  4. package/dist/cjs-legacy/index.cjs +1068 -184
  5. package/dist/cjs-legacy/index.cjs.map +1 -1
  6. package/dist/esm/index.mjs +1067 -186
  7. package/dist/esm/index.mjs.map +1 -1
  8. package/dist/esm-legacy/index.mjs +1068 -185
  9. package/dist/esm-legacy/index.mjs.map +1 -1
  10. package/dist/types/common/error.d.ts +23 -0
  11. package/dist/types/common/index.d.ts +1 -0
  12. package/dist/types/data-structures/base/iterable-element-base.d.ts +1 -1
  13. package/dist/types/data-structures/binary-tree/avl-tree.d.ts +128 -51
  14. package/dist/types/data-structures/binary-tree/binary-indexed-tree.d.ts +210 -164
  15. package/dist/types/data-structures/binary-tree/binary-tree.d.ts +439 -78
  16. package/dist/types/data-structures/binary-tree/bst.d.ts +311 -28
  17. package/dist/types/data-structures/binary-tree/red-black-tree.d.ts +217 -31
  18. package/dist/types/data-structures/binary-tree/segment-tree.d.ts +218 -152
  19. package/dist/types/data-structures/binary-tree/tree-map.d.ts +1281 -5
  20. package/dist/types/data-structures/binary-tree/tree-multi-map.d.ts +1087 -201
  21. package/dist/types/data-structures/binary-tree/tree-multi-set.d.ts +858 -65
  22. package/dist/types/data-structures/binary-tree/tree-set.d.ts +1133 -5
  23. package/dist/types/data-structures/graph/abstract-graph.d.ts +44 -0
  24. package/dist/types/data-structures/graph/directed-graph.d.ts +220 -47
  25. package/dist/types/data-structures/graph/map-graph.d.ts +59 -1
  26. package/dist/types/data-structures/graph/undirected-graph.d.ts +218 -59
  27. package/dist/types/data-structures/hash/hash-map.d.ts +230 -77
  28. package/dist/types/data-structures/heap/heap.d.ts +287 -99
  29. package/dist/types/data-structures/heap/max-heap.d.ts +46 -0
  30. package/dist/types/data-structures/heap/min-heap.d.ts +59 -0
  31. package/dist/types/data-structures/linked-list/doubly-linked-list.d.ts +286 -44
  32. package/dist/types/data-structures/linked-list/singly-linked-list.d.ts +278 -65
  33. package/dist/types/data-structures/linked-list/skip-linked-list.d.ts +415 -12
  34. package/dist/types/data-structures/matrix/matrix.d.ts +331 -0
  35. package/dist/types/data-structures/priority-queue/max-priority-queue.d.ts +57 -0
  36. package/dist/types/data-structures/priority-queue/min-priority-queue.d.ts +60 -0
  37. package/dist/types/data-structures/priority-queue/priority-queue.d.ts +60 -0
  38. package/dist/types/data-structures/queue/deque.d.ts +313 -66
  39. package/dist/types/data-structures/queue/queue.d.ts +211 -42
  40. package/dist/types/data-structures/stack/stack.d.ts +174 -32
  41. package/dist/types/data-structures/trie/trie.d.ts +213 -43
  42. package/dist/types/types/data-structures/binary-tree/segment-tree.d.ts +1 -1
  43. package/dist/types/types/data-structures/linked-list/skip-linked-list.d.ts +1 -4
  44. package/dist/types/types/data-structures/queue/deque.d.ts +6 -0
  45. package/dist/umd/undirected-graph-typed.js +1066 -182
  46. package/dist/umd/undirected-graph-typed.js.map +1 -1
  47. package/dist/umd/undirected-graph-typed.min.js +3 -1
  48. package/dist/umd/undirected-graph-typed.min.js.map +1 -1
  49. package/package.json +2 -2
  50. package/src/common/error.ts +60 -0
  51. package/src/common/index.ts +2 -0
  52. package/src/data-structures/base/iterable-element-base.ts +2 -2
  53. package/src/data-structures/binary-tree/avl-tree.ts +134 -51
  54. package/src/data-structures/binary-tree/binary-indexed-tree.ts +303 -247
  55. package/src/data-structures/binary-tree/binary-tree.ts +542 -121
  56. package/src/data-structures/binary-tree/bst.ts +346 -37
  57. package/src/data-structures/binary-tree/red-black-tree.ts +309 -96
  58. package/src/data-structures/binary-tree/segment-tree.ts +372 -248
  59. package/src/data-structures/binary-tree/tree-map.ts +1292 -13
  60. package/src/data-structures/binary-tree/tree-multi-map.ts +1098 -215
  61. package/src/data-structures/binary-tree/tree-multi-set.ts +863 -69
  62. package/src/data-structures/binary-tree/tree-set.ts +1143 -15
  63. package/src/data-structures/graph/abstract-graph.ts +106 -1
  64. package/src/data-structures/graph/directed-graph.ts +223 -47
  65. package/src/data-structures/graph/map-graph.ts +59 -1
  66. package/src/data-structures/graph/undirected-graph.ts +299 -59
  67. package/src/data-structures/hash/hash-map.ts +243 -79
  68. package/src/data-structures/heap/heap.ts +291 -102
  69. package/src/data-structures/heap/max-heap.ts +48 -3
  70. package/src/data-structures/heap/min-heap.ts +59 -0
  71. package/src/data-structures/linked-list/doubly-linked-list.ts +286 -44
  72. package/src/data-structures/linked-list/singly-linked-list.ts +278 -65
  73. package/src/data-structures/linked-list/skip-linked-list.ts +689 -90
  74. package/src/data-structures/matrix/matrix.ts +425 -22
  75. package/src/data-structures/priority-queue/max-priority-queue.ts +59 -3
  76. package/src/data-structures/priority-queue/min-priority-queue.ts +60 -0
  77. package/src/data-structures/priority-queue/priority-queue.ts +60 -0
  78. package/src/data-structures/queue/deque.ts +343 -68
  79. package/src/data-structures/queue/queue.ts +211 -42
  80. package/src/data-structures/stack/stack.ts +174 -32
  81. package/src/data-structures/trie/trie.ts +215 -44
  82. package/src/types/data-structures/binary-tree/segment-tree.ts +1 -1
  83. package/src/types/data-structures/linked-list/skip-linked-list.ts +2 -1
  84. package/src/types/data-structures/queue/deque.ts +7 -0
  85. package/src/utils/utils.ts +4 -2
package/README.md CHANGED
@@ -82,69 +82,6 @@ yarn add undirected-graph-typed
82
82
  console.log(neighborsA[1].key); // 'C';
83
83
  ```
84
84
 
85
- ### UndirectedGraph deleteEdge and vertex operations
86
- ```typescript
87
- const graph = new UndirectedGraph<string>();
88
-
89
- // Build a simple undirected graph
90
- graph.addVertex('X');
91
- graph.addVertex('Y');
92
- graph.addVertex('Z');
93
- graph.addEdge('X', 'Y', 1);
94
- graph.addEdge('Y', 'Z', 2);
95
- graph.addEdge('X', 'Z', 3);
96
-
97
- // Delete an edge
98
- graph.deleteEdge('X', 'Y');
99
- console.log(graph.hasEdge('X', 'Y')); // false;
100
-
101
- // Bidirectional deletion confirmed
102
- console.log(graph.hasEdge('Y', 'X')); // false;
103
-
104
- // Other edges should remain
105
- console.log(graph.hasEdge('Y', 'Z')); // true;
106
- console.log(graph.hasEdge('Z', 'Y')); // true;
107
-
108
- // Delete a vertex
109
- graph.deleteVertex('Y');
110
- console.log(graph.hasVertex('Y')); // false;
111
- console.log(graph.size); // 2;
112
- ```
113
-
114
- ### UndirectedGraph connectivity and neighbors
115
- ```typescript
116
- const graph = new UndirectedGraph<string>();
117
-
118
- // Build a friendship network
119
- const people = ['Alice', 'Bob', 'Charlie', 'Diana', 'Eve'];
120
- for (const person of people) {
121
- graph.addVertex(person);
122
- }
123
-
124
- // Add friendships (undirected edges)
125
- graph.addEdge('Alice', 'Bob', 1);
126
- graph.addEdge('Alice', 'Charlie', 1);
127
- graph.addEdge('Bob', 'Diana', 1);
128
- graph.addEdge('Charlie', 'Eve', 1);
129
- graph.addEdge('Diana', 'Eve', 1);
130
-
131
- // Get friends of each person
132
- const aliceFriends = graph.getNeighbors('Alice');
133
- console.log(aliceFriends[0].key); // 'Bob';
134
- console.log(aliceFriends[1].key); // 'Charlie';
135
- console.log(aliceFriends.length); // 2;
136
-
137
- const dianaFriends = graph.getNeighbors('Diana');
138
- console.log(dianaFriends[0].key); // 'Bob';
139
- console.log(dianaFriends[1].key); // 'Eve';
140
- console.log(dianaFriends.length); // 2;
141
-
142
- // Verify bidirectional friendship
143
- const bobFriends = graph.getNeighbors('Bob');
144
- console.log(bobFriends[0].key); // 'Alice'; // Alice -> Bob -> Alice ✓
145
- console.log(bobFriends[1].key); // 'Diana';
146
- ```
147
-
148
85
  ### UndirectedGraph for social network connectivity analysis
149
86
  ```typescript
150
87
  interface Person {