
1 Common Data Structure
- 数组、字符串串 / Array & String
- 链表 / Linked-list
- 栈 / Stack
- 队列列 / Queue
- 双端队列列 / Deque
- 树 / Tree
数组、字符串串 / Array & String
优点
构造简单
根据下标(index)在O(1)时间索引元素
缺点
分配空间必须连续
查询需要遍历每个元素 O(n)
删除元素 O(n)
添加元素 O(n) 可能涉及扩容
leetcode 242
String 的 charAt 直接用下标从 value 获取 toCharArray 会 new 新的 char[] 再使用 System.arraycopy 拷贝填充
System.arraycopy 效率?www.cnblogs.com/wellmaxwang…
链表 / Linked-list
优点
分配空间无需连续
在O(1)时间删除或添加元素
缺点
查询需要遍历每个元素 O(n)
leetcode 25
栈 / Stack
特点
后进先出(LIFO)
leetcode 20
leetcode 739
队列列 / Queue
特点
先进先出(FIFO)
双端队列列 / Deque
特点 双链表
头尾在 O(1) 内进行数据的查看、添加和删除
leetcode 239
树 / Tree
普通⼆二叉树
平衡⼆二叉树
完全⼆二叉树
⼆二叉搜索树
四叉树
多叉树
特殊的树:红⿊黑树、⾃自平衡⼆二叉搜索树
遍历
- 广度优先
- 前序遍历(Preorder Traversal)
- 中序遍历(Inorder Traversal)
- 后序遍历(Postorder Traversal)