@@ -51,8 +51,8 @@ Push(values ...T)
51
51
Example:
52
52
53
53
``` go
54
- stack := NewArrayStack [int ]()
55
- stack.Push (1 )
54
+ stack := NewArrayStack [int ]()
55
+ stack.Push (1 )
56
56
```
57
57
58
58
## 出栈
@@ -66,36 +66,36 @@ Pop Example:
66
66
67
67
``` go
68
68
type User struct {
69
- }
70
- stack := NewArrayStack [*User]()
71
- fmt.Println (stack.Pop ())
72
- u := &User{}
73
- stack.Push (u)
74
- fmt.Println (stack.Pop ())
75
- // Output:
76
- // <nil>
77
- // &{}
69
+ }
70
+ stack := NewArrayStack [*User]()
71
+ fmt.Println (stack.Pop ())
72
+ u := &User{}
73
+ stack.Push (u)
74
+ fmt.Println (stack.Pop ())
75
+ // Output:
76
+ // <nil>
77
+ // &{}
78
78
```
79
79
80
80
PopE Example:
81
81
82
82
``` go
83
83
stack := NewArrayStack [int ]()
84
- element , err := stack.PopE ()
85
- if errors.Is (err, ErrStackEmpty ) {
86
- fmt.Println (" stack empty!" )
87
- }
88
-
89
- stack.Push (1 )
90
- element, err = stack.PopE ()
91
- if err != nil {
92
- fmt.Println (err.Error ())
93
- return
94
- }
95
- fmt.Println (element)
96
- // Output:
97
- // stack empty!
98
- // 1
84
+ element , err := stack.PopE ()
85
+ if errors.Is (err, ErrStackEmpty ) {
86
+ fmt.Println (" stack empty!" )
87
+ }
88
+
89
+ stack.Push (1 )
90
+ element, err = stack.PopE ()
91
+ if err != nil {
92
+ fmt.Println (err.Error ())
93
+ return
94
+ }
95
+ fmt.Println (element)
96
+ // Output:
97
+ // stack empty!
98
+ // 1
99
99
```
100
100
101
101
## 查看栈顶元素
@@ -108,37 +108,37 @@ PeekE() (T, error)
108
108
Peek Example:
109
109
110
110
``` go
111
- type User struct {
112
- }
113
- stack := NewArrayStack [*User]()
114
- fmt.Println (stack.Peek ())
115
- u := &User{}
116
- stack.Push (u)
117
- fmt.Println (stack.Peek ())
118
- // Output:
119
- // <nil>
120
- // &{}
111
+ type User struct {
112
+ }
113
+ stack := NewArrayStack [*User]()
114
+ fmt.Println (stack.Peek ())
115
+ u := &User{}
116
+ stack.Push (u)
117
+ fmt.Println (stack.Peek ())
118
+ // Output:
119
+ // <nil>
120
+ // &{}
121
121
```
122
122
123
123
PeekE Example:
124
124
125
125
``` go
126
126
stack := NewArrayStack [int ]()
127
- element , err := stack.PeekE ()
128
- if errors.Is (err, ErrStackEmpty ) {
129
- fmt.Println (" stack empty!" )
130
- }
131
-
132
- stack.Push (1 )
133
- element, err = stack.PeekE ()
134
- if err != nil {
135
- fmt.Println (err.Error ())
136
- return
137
- }
138
- fmt.Println (element)
139
- // Output:
140
- // stack empty!
141
- // 1
127
+ element , err := stack.PeekE ()
128
+ if errors.Is (err, ErrStackEmpty ) {
129
+ fmt.Println (" stack empty!" )
130
+ }
131
+
132
+ stack.Push (1 )
133
+ element, err = stack.PeekE ()
134
+ if err != nil {
135
+ fmt.Println (err.Error ())
136
+ return
137
+ }
138
+ fmt.Println (element)
139
+ // Output:
140
+ // stack empty!
141
+ // 1
142
142
```
143
143
144
144
## 判断栈是否空
@@ -151,25 +151,25 @@ IsNotEmpty() bool
151
151
IsEmpty Example:
152
152
153
153
``` go
154
- stack := NewArrayStack [int ]()
155
- fmt.Println (stack.IsEmpty ())
156
- stack.Push (1 )
157
- fmt.Println (stack.IsEmpty ())
158
- // Output:
159
- // true
160
- // false
154
+ stack := NewArrayStack [int ]()
155
+ fmt.Println (stack.IsEmpty ())
156
+ stack.Push (1 )
157
+ fmt.Println (stack.IsEmpty ())
158
+ // Output:
159
+ // true
160
+ // false
161
161
```
162
162
163
163
IsNotEmpty Example:
164
164
165
165
``` go
166
- stack := NewArrayStack [int ]()
167
- fmt.Println (stack.IsNotEmpty ())
168
- stack.Push (1 )
169
- fmt.Println (stack.IsNotEmpty ())
170
- // Output:
171
- // false
172
- // true
166
+ stack := NewArrayStack [int ]()
167
+ fmt.Println (stack.IsNotEmpty ())
168
+ stack.Push (1 )
169
+ fmt.Println (stack.IsNotEmpty ())
170
+ // Output:
171
+ // false
172
+ // true
173
173
```
174
174
175
175
## 栈中元素个数
@@ -181,11 +181,11 @@ Size() int
181
181
Example:
182
182
183
183
``` go
184
- stack := NewArrayStack [int ]()
185
- stack.Push (1 )
186
- fmt.Println (stack.Size ())
187
- // Output:
188
- // 1
184
+ stack := NewArrayStack [int ]()
185
+ stack.Push (1 )
186
+ fmt.Println (stack.Size ())
187
+ // Output:
188
+ // 1
189
189
```
190
190
191
191
## 清空栈
@@ -197,14 +197,14 @@ Clear()
197
197
Example:
198
198
199
199
``` go
200
- stack := NewArrayStack [int ]()
201
- stack.Push (1 )
202
- fmt.Println (stack.Size ())
203
- stack.Clear ()
204
- fmt.Println (stack.Size ())
205
- // Output:
206
- // 1
207
- // 0
200
+ stack := NewArrayStack [int ]()
201
+ stack.Push (1 )
202
+ fmt.Println (stack.Size ())
203
+ stack.Clear ()
204
+ fmt.Println (stack.Size ())
205
+ // Output:
206
+ // 1
207
+ // 0
208
208
```
209
209
210
210
## String
@@ -214,11 +214,11 @@ Example:
214
214
Example:
215
215
216
216
``` go
217
- stack := NewArrayStack [int ]()
218
- stack.Push (1 )
219
- fmt.Println (stack.String ())
220
- // Output:
221
- // [1]
217
+ stack := NewArrayStack [int ]()
218
+ stack.Push (1 )
219
+ fmt.Println (stack.String ())
220
+ // Output:
221
+ // [1]
222
222
```
223
223
224
224
# ArrayStack
@@ -228,10 +228,10 @@ Example:
228
228
Example:
229
229
230
230
``` go
231
- stack := NewArrayStack [int ]()
232
- fmt.Println (stack.String ())
233
- // Output:
234
- // []
231
+ stack := NewArrayStack [int ]()
232
+ fmt.Println (stack.String ())
233
+ // Output:
234
+ // []
235
235
```
236
236
237
237
# LinkedStack
@@ -241,10 +241,10 @@ Example:
241
241
Example:
242
242
243
243
``` go
244
- stack := NewLinkedStack [int ]()
245
- fmt.Println (stack.String ())
246
- // Output:
247
- // []
244
+ stack := NewLinkedStack [int ]()
245
+ fmt.Println (stack.String ())
246
+ // Output:
247
+ // []
248
248
```
249
249
250
250
# 五、最大栈 & 最小栈
@@ -261,41 +261,41 @@ GetMinE() (T, error)
261
261
GetMin Example:
262
262
263
263
``` go
264
- stack := NewSyncMinStack [int ](func (a, b int ) int { return a - b })
264
+ stack := NewSyncMinStack [int ](func (a, b int ) int { return a - b })
265
265
266
- _ , err := stack.GetMinE ()
267
- assert.ErrorIs (t, err, ErrStackEmpty )
266
+ _ , err := stack.GetMinE ()
267
+ assert.ErrorIs (t, err, ErrStackEmpty )
268
268
269
- stack.Push (10 )
270
- stack.Push (7 )
271
- stack.Push (9 )
272
- element , err := stack.GetMinE ()
273
- assert.Nil (t, err)
274
- assert.Equal (t, 7 , element)
269
+ stack.Push (10 )
270
+ stack.Push (7 )
271
+ stack.Push (9 )
272
+ element , err := stack.GetMinE ()
273
+ assert.Nil (t, err)
274
+ assert.Equal (t, 7 , element)
275
275
```
276
276
277
277
GetMinE Example:
278
278
279
279
``` go
280
280
stack := NewSyncMinStack [int ](func (a, b int ) int { return a - b })
281
281
282
- _ , err := stack.GetMinE ()
283
- if errors.Is (err, ErrStackEmpty ) {
284
- fmt.Println (" stack empty!" )
285
- }
286
-
287
- stack.Push (10 )
288
- stack.Push (7 )
289
- stack.Push (9 )
290
- element , err := stack.GetMinE ()
291
- if err != nil {
292
- fmt.Println (err.Error ())
293
- return
294
- }
295
- fmt.Println (element)
296
- // Output:
297
- // stack empty!
298
- // 7
282
+ _ , err := stack.GetMinE ()
283
+ if errors.Is (err, ErrStackEmpty ) {
284
+ fmt.Println (" stack empty!" )
285
+ }
286
+
287
+ stack.Push (10 )
288
+ stack.Push (7 )
289
+ stack.Push (9 )
290
+ element , err := stack.GetMinE ()
291
+ if err != nil {
292
+ fmt.Println (err.Error ())
293
+ return
294
+ }
295
+ fmt.Println (element)
296
+ // Output:
297
+ // stack empty!
298
+ // 7
299
299
```
300
300
301
301
## MaxStack && SyncMaxStack
@@ -310,41 +310,41 @@ GetMaxE() (T, error)
310
310
GetMax Example:
311
311
312
312
``` go
313
- stack := NewSyncMaxStack [int ](func (a, b int ) int { return a - b })
313
+ stack := NewSyncMaxStack [int ](func (a, b int ) int { return a - b })
314
314
315
- _ , err := stack.GetMaxE ()
316
- assert.ErrorIs (t, err, ErrStackEmpty )
315
+ _ , err := stack.GetMaxE ()
316
+ assert.ErrorIs (t, err, ErrStackEmpty )
317
317
318
- stack.Push (10 )
319
- stack.Push (7 )
320
- stack.Push (9 )
321
- element , err := stack.GetMaxE ()
322
- assert.Nil (t, err)
323
- assert.Equal (t, 10 , element)
318
+ stack.Push (10 )
319
+ stack.Push (7 )
320
+ stack.Push (9 )
321
+ element , err := stack.GetMaxE ()
322
+ assert.Nil (t, err)
323
+ assert.Equal (t, 10 , element)
324
324
```
325
325
326
326
GetMaxE Example:
327
327
328
328
``` go
329
- stack := NewSyncMaxStack [int ](func (a, b int ) int { return a - b })
330
-
331
- _ , err := stack.GetMaxE ()
332
- if errors.Is (err, ErrStackEmpty ) {
333
- fmt.Println (" stack empty!" )
334
- }
335
-
336
- stack.Push (10 )
337
- stack.Push (7 )
338
- stack.Push (9 )
339
- element , err := stack.GetMaxE ()
340
- if err != nil {
341
- fmt.Println (err.Error ())
342
- return
343
- }
344
- fmt.Println (element)
345
- // Output:
346
- // stack empty!
347
- // 10
329
+ stack := NewSyncMaxStack [int ](func (a, b int ) int { return a - b })
330
+
331
+ _ , err := stack.GetMaxE ()
332
+ if errors.Is (err, ErrStackEmpty ) {
333
+ fmt.Println (" stack empty!" )
334
+ }
335
+
336
+ stack.Push (10 )
337
+ stack.Push (7 )
338
+ stack.Push (9 )
339
+ element , err := stack.GetMaxE ()
340
+ if err != nil {
341
+ fmt.Println (err.Error ())
342
+ return
343
+ }
344
+ fmt.Println (element)
345
+ // Output:
346
+ // stack empty!
347
+ // 10
348
348
```
349
349
350
350
# TODO
0 commit comments