数组:
添加元素
-
添加一个元素到数组的最后位置
array.push(item)
,返回数组的长度 -
在数组首位插入一个元素
array.unshift(item)
-
在指定索引位置插入元素
array.splice(index, 0, item)
splice() 第二个参数为 0 时,表示插入数据。
let myArray = [1, 2, 3]; // 在 索引 0 的位置,插入 A myArray.splice(0, 0, "A"); console.log(myArray); //--> ['A', 1, 2, 3]
- 1
- 2
- 3
- 4
删除元素
-
删除数组最后的元素
array.pop(item)
,返回被删除的元素 -
删除数组首位的元素
array.shift(item)
-
删除指定索引位置的元素
array.splice(start, number)
例如:let myArray2 = [1, 2, 3, 4, 5]; // 删除索引 4 位置起,2 个元素 myArray2.splice(4, 2); console.log(myArray2); //--> [1, 2, 3]
- 1
- 2
- 3
- 4
修改元素
-
修改指定索引位置的元素
array.splice(index, 1, item)
let myArray3 = [1, 2, 3, 4, 5, 6]; // 修改 索引 1 的位置的元素为 AA myArray2.splice(1, 1, "AA"); console.log(myArray3); //--> [1, "AA", 3, 4, 5, 6]
- 1
- 2
- 3
- 4
-
修改指定索引位置的几个元素
array.splice(index, number, item)
let myArray4 = [1, 2, 3, 4, 5, 6, 7];
// 在 索引 2 的位置起,修改两个元素为 AA BB
myArray2.splice(2, 2, "AA", "BB");
console.log(myArray3); //--> [1, 2, "AA", "BB", 5, 6, 7]
- 1
- 2
- 3
- 4
栈:
先进后出,后进先出。
限制:仅允许在表的一端进行插入和删除运算,这一端被称为栈顶。相对地,把另一端称为栈底。
常见操作:
push()
添加一个新元素到栈顶位置。pop()
移除栈顶的元素,同时返回被移除的元素。peek()
返回栈顶的元素,不对栈做任何修改(该方法不会移除栈顶的元素,仅仅返回它)。isEmpty()
如果栈里没有任何元素就返回true
,否则返回false
。size()
返回栈里的元素个数。这个方法和数组的length
属性类似。toString()
将栈结构的内容以字符串的形式返回。
队列:
先进先出。
限制:只允许在表的前端进行删除操作。在表的后端进行插入操作。
基于数组或链表实现。
常见操作:
enqueue(element)
向队列尾部添加一个(或多个)新的项。dequeue()
移除队列的第一(即排在队列最前面的)项,并返回被移除的元素。front()
返回队列中的第一个元素——最先被添加,也将是最先被移除的元素。队列不做任何变动(不移除元素,只返回元素信息与 Map 类的 peek 方法非常类似)。isEmpty()
如果队列中不包含任何元素,返回 true,否则返回 false。size()
返回队列包含的元素个数,与数组的 length 属性类似。toString()
将队列中的内容,转成字符串形式。
链表:
常见操作:
append(element)
向链表尾部添加一个新的项。insert(position, element)
向链表的特定位置插入一个新的项。get(position)
获取对应位置的元素。indexOf(element)
返回元素在链表中的索引。如果链表中没有该元素就返回-1。update(position, element)
修改某个位置的元素。removeAt(position)
从链表的特定位置移除一项。remove(element)
从链表中移除一项。isEmpty()
如果链表中不包含任何元素,返回 trun,如果链表长度大于 0 则返回 false。size()
返回链表包含的元素个数,与数组的 length 属性类似。toString()
由于链表项使用了 Node 类,就需要重写继承自 JavaScript 对象默认的 toString 方法,让其只输出元素的值。
集合:
无序,不可重复的特殊数组
常见操作:
-
add(value)
向集合添加一个新的项。 -
remove(value)
从集合移除一个值。 -
has(value)
如果值在集合中,返回true
,否则返回false
。 -
clear()
移除集合中的所有项。 -
size()
返回集合所包含元素的数量。与数组的length
属性类似。 -
values()
返回一个包含集合中所有值的数组。const set = new Set();
- 1
字典:
键值对,一一对应,key不可以重复且无序,Value可以重复。
常见操作:
set(key,value)
向字典中添加新元素。remove(key)
通过使用键值来从字典中移除键值对应的数据值。has(key)
如果某个键值存在于这个字典中,则返回true
,反之则返回false
。get(key)
通过键值查找特定的数值并返回。clear()
将这个字典中的所有元素全部删除。size()
返回字典所包含元素的数量。与数组的length
属性类似。keys()
将字典所包含的所有键名以数组形式返回。values()
将字典所包含的所有数值以数组形式返回。
const map = new Map();
- 1
二叉树:
1.一个二叉树第n层的最大节点数为:2^(n-1),n>=1
2.深度为k的二叉树的最大节点总数为:2^(k)-1,k>=1
3.叶子节点树代表a,非叶子节点个数b,a = b+1
a:H,E,I,J,G
b:A,B,C,F
二叉树的5种状态:
遍历方式:
前序:根左右
中序:左根右
后续:左右根
层次遍历:一层一层输出