1.array
特点:
从数组中取元素,时间复杂度为
总结:
2.linked list(链表)
注意pop(back)也是O(N), 因为要找倒数第二个元素
对于双向链表:
3.stack(栈)
从下到上
可以用来建立array 或者 linked list
LIFO的意思: last in, first out (后进先出)
4.queue(队列)
FIFO(先进先出)
队列可以与其他类型(数组、链表)等同步操作
每个队列的操作复杂度都是
5.trees(树)
树上的每一个节点都有以下元素:
- 内容(key)
- 左子树(node.left)
- 右子树(node.right)
树的遍历有两种:深度优先和广度优先(一层一层打印):
深度优先遍历又可以分为:
(pre-order,post-order and in-order)
广度优先可以用队列实施