typescript-ds-lib 0.0.1 → 0.1.1

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 (46) hide show
  1. package/README.md +33 -0
  2. package/dist/index.d.ts +8 -1
  3. package/dist/index.js +30 -0
  4. package/dist/index.js.map +1 -1
  5. package/dist/lib/binary-search-tree.d.ts +40 -0
  6. package/dist/lib/binary-search-tree.js +155 -0
  7. package/dist/lib/binary-search-tree.js.map +1 -0
  8. package/dist/lib/deque.d.ts +41 -0
  9. package/dist/lib/deque.js +65 -0
  10. package/dist/lib/deque.js.map +1 -0
  11. package/dist/lib/linked-list.d.ts +43 -0
  12. package/dist/lib/linked-list.js +172 -0
  13. package/dist/lib/linked-list.js.map +1 -0
  14. package/dist/lib/priority-queue.d.ts +32 -0
  15. package/dist/lib/priority-queue.js +61 -0
  16. package/dist/lib/priority-queue.js.map +1 -0
  17. package/dist/lib/queue.d.ts +29 -0
  18. package/dist/lib/queue.js +47 -0
  19. package/dist/lib/queue.js.map +1 -0
  20. package/dist/lib/set.d.ts +29 -0
  21. package/dist/lib/set.js +50 -0
  22. package/dist/lib/set.js.map +1 -0
  23. package/dist/lib/stack.d.ts +2 -1
  24. package/dist/lib/stack.js.map +1 -1
  25. package/dist/tests/binary-search-tree.test.d.ts +1 -0
  26. package/dist/tests/binary-search-tree.test.js +75 -0
  27. package/dist/tests/binary-search-tree.test.js.map +1 -0
  28. package/dist/tests/deque.test.d.ts +1 -0
  29. package/dist/tests/deque.test.js +78 -0
  30. package/dist/tests/deque.test.js.map +1 -0
  31. package/dist/tests/linked-list.test.d.ts +1 -0
  32. package/dist/tests/linked-list.test.js +101 -0
  33. package/dist/tests/linked-list.test.js.map +1 -0
  34. package/dist/tests/priority-queue.test.d.ts +1 -0
  35. package/dist/tests/priority-queue.test.js +59 -0
  36. package/dist/tests/priority-queue.test.js.map +1 -0
  37. package/dist/tests/queue.test.d.ts +1 -0
  38. package/dist/tests/queue.test.js +48 -0
  39. package/dist/tests/queue.test.js.map +1 -0
  40. package/dist/tests/set.test.d.ts +1 -0
  41. package/dist/tests/set.test.js +75 -0
  42. package/dist/tests/set.test.js.map +1 -0
  43. package/dist/types/index.d.ts +64 -0
  44. package/dist/types/index.js +3 -0
  45. package/dist/types/index.js.map +1 -0
  46. package/package.json +2 -4
@@ -0,0 +1 @@
1
+ {"version":3,"file":"queue.test.js","sourceRoot":"","sources":["../../tests/queue.test.ts"],"names":[],"mappings":";;AAAA,wCAAqC;AAErC,QAAQ,CAAC,OAAO,EAAE,GAAG,EAAE;IACrB,IAAI,KAAoB,CAAC;IAEzB,UAAU,CAAC,GAAG,EAAE;QACd,KAAK,GAAG,IAAI,aAAK,EAAU,CAAC;IAC9B,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,2BAA2B,EAAE,GAAG,EAAE;QACrC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC/B,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,+BAA+B,EAAE,GAAG,EAAE;QACzC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACd,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACd,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC7B,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAChC,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,gCAAgC,EAAE,GAAG,EAAE;QAC1C,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACd,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACd,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC5B,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC7B,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC5B,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACnC,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,kDAAkD,EAAE,GAAG,EAAE;QAC5D,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,aAAa,EAAE,CAAC;IACtC,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,iDAAiD,EAAE,GAAG,EAAE;QAC3D,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACd,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACd,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC9B,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC/B,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,4DAA4D,EAAE,GAAG,EAAE;QACtE,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,aAAa,EAAE,CAAC;IACxC,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,sCAAsC,EAAE,GAAG,EAAE;QAChD,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACd,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACd,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACd,KAAK,CAAC,KAAK,EAAE,CAAC;QACd,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC/B,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,75 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const set_1 = require("../lib/set");
4
+ describe('Set', () => {
5
+ let set;
6
+ beforeEach(() => {
7
+ set = new set_1.Set();
8
+ });
9
+ test('should start empty', () => {
10
+ expect(set.empty()).toBe(true);
11
+ expect(set.size()).toBe(0);
12
+ });
13
+ test('should insert elements correctly', () => {
14
+ set.insert(1);
15
+ expect(set.size()).toBe(1);
16
+ expect(set.find(1)).toBe(true);
17
+ // Duplicate insertion should not increase size
18
+ set.insert(1);
19
+ expect(set.size()).toBe(1);
20
+ set.insert(2);
21
+ expect(set.size()).toBe(2);
22
+ expect(set.find(2)).toBe(true);
23
+ });
24
+ test('should remove elements correctly', () => {
25
+ set.insert(1);
26
+ set.insert(2);
27
+ set.insert(3);
28
+ set.remove(2);
29
+ expect(set.size()).toBe(2);
30
+ expect(set.find(2)).toBe(false);
31
+ expect(set.find(1)).toBe(true);
32
+ expect(set.find(3)).toBe(true);
33
+ // Removing non-existent element should not affect set
34
+ set.remove(4);
35
+ expect(set.size()).toBe(2);
36
+ });
37
+ test('should clear all elements', () => {
38
+ set.insert(1);
39
+ set.insert(2);
40
+ set.insert(3);
41
+ set.clear();
42
+ expect(set.empty()).toBe(true);
43
+ expect(set.size()).toBe(0);
44
+ expect(set.find(1)).toBe(false);
45
+ });
46
+ test('should work with different data types', () => {
47
+ const stringSet = new set_1.Set();
48
+ stringSet.insert('hello');
49
+ stringSet.insert('world');
50
+ expect(stringSet.size()).toBe(2);
51
+ expect(stringSet.find('hello')).toBe(true);
52
+ expect(stringSet.find('nonexistent')).toBe(false);
53
+ });
54
+ test('should find elements correctly', () => {
55
+ // Empty set should not find any elements
56
+ expect(set.find(1)).toBe(false);
57
+ // Test finding elements after insertion
58
+ set.insert(1);
59
+ set.insert(2);
60
+ set.insert(3);
61
+ expect(set.find(1)).toBe(true);
62
+ expect(set.find(2)).toBe(true);
63
+ expect(set.find(3)).toBe(true);
64
+ expect(set.find(4)).toBe(false);
65
+ // Test finding after removal
66
+ set.remove(2);
67
+ expect(set.find(2)).toBe(false);
68
+ // Test finding after clear
69
+ set.clear();
70
+ expect(set.find(1)).toBe(false);
71
+ expect(set.find(2)).toBe(false);
72
+ expect(set.find(3)).toBe(false);
73
+ });
74
+ });
75
+ //# sourceMappingURL=set.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"set.test.js","sourceRoot":"","sources":["../../tests/set.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,64 @@
1
+ export interface StackTy<T> {
2
+ push(element: T): void;
3
+ pop(): T | undefined;
4
+ top(): T | undefined;
5
+ empty(): boolean;
6
+ size(): number;
7
+ clear(): void;
8
+ }
9
+ export interface QueueTy<T> {
10
+ push(element: T): void;
11
+ pop(): T | undefined;
12
+ front(): T | undefined;
13
+ empty(): boolean;
14
+ size(): number;
15
+ clear(): void;
16
+ }
17
+ export interface PriorityQueueTy<T> {
18
+ push(element: T, priority: number): void;
19
+ pop(): T | undefined;
20
+ front(): T | undefined;
21
+ empty(): boolean;
22
+ size(): number;
23
+ clear(): void;
24
+ }
25
+ export interface BinarySearchTreeTy<T> {
26
+ insert(element: T): void;
27
+ remove(element: T): void;
28
+ find(element: T): boolean;
29
+ min(): T | undefined;
30
+ max(): T | undefined;
31
+ empty(): boolean;
32
+ clear(): void;
33
+ count(): number;
34
+ }
35
+ export interface DequeTy<T> {
36
+ pushFront(element: T): void;
37
+ pushBack(element: T): void;
38
+ popFront(): T | undefined;
39
+ popBack(): T | undefined;
40
+ front(): T | undefined;
41
+ back(): T | undefined;
42
+ empty(): boolean;
43
+ size(): number;
44
+ clear(): void;
45
+ }
46
+ export interface LinkedListTy<T> {
47
+ pushBack(element: T): void;
48
+ pushFront(element: T): void;
49
+ insert(element: T, position: number): boolean;
50
+ removeIf(condition: (element: T) => boolean): boolean;
51
+ removeAt(position: number): T | undefined;
52
+ get(position: number): T | undefined;
53
+ empty(): boolean;
54
+ size(): number;
55
+ clear(): void;
56
+ }
57
+ export interface SetTy<T> {
58
+ insert(element: T): void;
59
+ remove(element: T): void;
60
+ find(element: T): boolean;
61
+ empty(): boolean;
62
+ size(): number;
63
+ clear(): void;
64
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../types/index.ts"],"names":[],"mappings":""}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "typescript-ds-lib",
3
- "version": "0.0.1",
3
+ "version": "0.1.1",
4
4
  "description": "A collection of TypeScript data structure implementations",
5
5
  "author": "Artiom Baloian <artiom.baloian@gmail.com>",
6
6
  "license": "MIT",
@@ -18,10 +18,8 @@
18
18
  "type": "git",
19
19
  "url": "https://github.com/baloian/typescript-ds.git"
20
20
  },
21
- "dependencies": {
22
- "ts-node": "^10.9.2"
23
- },
24
21
  "devDependencies": {
22
+ "ts-node": "^10.9.2",
25
23
  "@types/jest": "^29.5.14",
26
24
  "@types/node": "^22.10.1",
27
25
  "ts-jest": "^29.2.5",