jc-structure 0.1.11 → 0.1.12

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 (2) hide show
  1. package/index.d.ts +85 -22
  2. package/package.json +1 -1
package/index.d.ts CHANGED
@@ -1,56 +1,119 @@
1
- /// <reference path='./global.d.ts' />
2
- /// <reference path='./types/stack.d.ts' />
3
- /// <reference path='./types/queue.d.ts' />
4
- /// <reference path='./types/heap.d.ts' />
5
-
6
1
  declare module "jc-structure" {
2
+ interface Structure {
3
+ /**
4
+ * 判断数据结构是否为空
5
+ */
6
+ isEmpty(): boolean;
7
+ /**
8
+ * 数据结构元素长度
9
+ */
10
+ size(): number;
11
+ /**
12
+ * 清除数据结构元素
13
+ */
14
+ clear(): void;
15
+ /**
16
+ * 重写 toString 方法
17
+ */
18
+ toString(): string;
19
+ }
7
20
  /**
8
21
  * 栈类,采用object实现
9
22
  */
10
- interface Stack<T> extends IStack<T> {}
23
+ interface Stack<T> extends Structure {
24
+ /**
25
+ * #### 移除栈顶元素并返回该元素
26
+ */
27
+ pop(): T | undefined;
28
+
29
+ /**
30
+ * #### 向栈顶添加元素
31
+ * @param args 要添加的元素,key可以是多个或一个元素。
32
+ */
33
+ push(items: T | Array<T>): this;
34
+ push(...args: Array<T>): this;
35
+
36
+ /**
37
+ * #### 返回栈顶元素,但不移除
38
+ */
39
+ peek(): T | undefined;
40
+ }
11
41
  interface StackConstructor {
12
42
  new <T>(): Stack<T>;
13
43
  readonly prototype: Stack<T>;
14
44
  }
15
- declare const Stack: StackConstructor;
45
+ declare var Stack: StackConstructor;
16
46
 
17
47
  /**
18
48
  * 队列类,采用object实现
19
49
  */
20
- interface Queue<T> extends IQueue<T> {}
50
+ interface Queue<T> extends Structure {
51
+ /**
52
+ * #### 移除队列头部元素并返回该元素
53
+ */
54
+ dequeue(): T | undefined;
55
+
56
+ /**
57
+ * #### 向队列末尾添加元素
58
+ * @param args 要添加的元素
59
+ */
60
+ enqueue(items: T | Array<T>): this;
61
+ enqueue(...args: Array<T>): this;
62
+ /**
63
+ * #### 返回队列头部元素,但不移除
64
+ */
65
+ front(): T | undefined;
66
+ }
21
67
  interface QueueConstructor {
22
68
  new <T>(): Queue<T>;
23
69
  readonly prototype: Queue<T>;
24
70
  }
25
- declare const Queue: QueueConstructor;
71
+ declare var Queue: QueueConstructor;
26
72
 
27
- // type CompareResult = -1 | 0 | 1;
73
+ type CompareResult = -1 | 0 | 1;
28
74
 
29
- // interface CompareFn<T> {
30
- // (a: T, b: T): CompareResult;
31
- // }
75
+ interface CompareFn<T> {
76
+ (a: T, b: T): CompareResult;
77
+ }
32
78
 
33
- // interface Obj<V = any> {
34
- // [key: string]: V;
35
- // }
79
+ interface Obj<V = any> {
80
+ [key: string]: V;
81
+ }
36
82
  /**
37
83
  * 最小堆
38
84
  */
39
- interface MinHeap<T> extends IHeap<T> {}
85
+ interface MinHeap<T> extends Structure {
86
+ /**
87
+ * #### 插入一个值,返回一个布尔值
88
+ * @param value 要插入的值
89
+ */
90
+ insert(value: T): boolean;
91
+
92
+ /**
93
+ * #### 移除最小值或最大值,返回该值
94
+ */
95
+ extract(): T | undefined;
96
+
97
+ /**
98
+ * 查找一个值
99
+ * @param value 要查找的值
100
+ */
101
+ find(): T | undefined;
102
+ }
40
103
  interface MinHeapConstructor {
41
104
  new <T>(fn?: CompareFn<T>): MinHeap<T>;
42
105
  readonly prototype: MinHeap<T>;
43
106
  }
44
- declare const MinHeap: MinHeapConstructor;
107
+ declare var MinHeap: MinHeapConstructor;
45
108
 
46
109
  /**
47
110
  * 最大堆
48
111
  */
49
- interface Constructor {
112
+ interface MaxConstructor {
50
113
  new <T>(fn?: CompareFn<T>): MinHeap<T>;
51
114
  readonly prototype: MinHeap<T>;
52
115
  }
53
- declare const MaxHeap: Constructor;
116
+ declare var MaxHeap: MaxConstructor;
54
117
  /**
55
118
  * LRU缓存类
56
119
  */
@@ -71,7 +134,7 @@ declare module "jc-structure" {
71
134
  new <K, V>(capacity?: number): LRU<K, V>;
72
135
  readonly prototype: LRU<K, V>;
73
136
  }
74
- declare const LRU: LRUConstructor;
137
+ declare var LRU: LRUConstructor;
75
138
 
76
139
  /**
77
140
  * 链表节点类
@@ -271,7 +334,7 @@ declare module "jc-structure" {
271
334
  */
272
335
  toRoman(num: number): string;
273
336
  }
274
- declare const Roman: RomanConstructor;
337
+ declare var Roman: RomanConstructor;
275
338
 
276
339
  interface Point {
277
340
  /**
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "jc-structure",
3
3
  "private": false,
4
- "version": "0.1.11",
4
+ "version": "0.1.12",
5
5
  "type": "module",
6
6
  "files": [
7
7
  "dist",