0%

栈和队列理解

栈 就是先进后出FILO (First-In-Last-Out); 像一个杯子 喝到的始终是最上面的水;
队列 就是 先进先出FIFO(First-In-Lsat-Out); 像吸管喝到的始终是底部的水;

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
// 栈 先进后出 First-In-Last-Out
/**
* push() 进来 向尾部添加数据
* | 2 |
* | 1 |
* | |
* | |
* |_____|
*
*
* pop() 出去 先删除尾部数据
*
*
* | 1 |
* | |
* | |
* |_____|
*
*/

var stackArr = ['a'];

stackArr.push('b');
stackArr.push('c');

console.log('stackArr-',stackArr) // stackArr-['a','b','c'];

stackArr.pop();

console.log('stackArr-',stackArr) // stackArr-['a','b'];

stackArr.pop();

console.log('stackArr-',stackArr) // stackArr-['a'];

// 队列 先进先出 First-In-Fisrt-Out
/**
* unshift() 进来 向底部添加数据
* | |
* | |
* | |
* | 2 |
* | 1 |
*
*
* shift() 出去 底部的‘1’ 先删除
*
* | |
* | |
* | |
* | 2 |
*
*/
var queueList = ['a'];

queueList.unshift('b','c');

console.log('queueList-',queueList); // queueList-['b','c','a']

queueList.shift();

console.log('queueList-',queueList); // queueList-['c','a']

queueList.shift();

console.log('queueList-',queueList); // queueList-['a']
------ 本文结束------