从今天开始进入java数据结构和算法的正式学习。。。
先看下数据结构的特征
数据结构 | 优点 | 缺点 |
数组 | 插入块,通过下标快速存取 | 查、删慢,大小固定 |
有序数组 | 比无序数组查找块 | 删除和插入慢,大小固定 |
栈 | 提供后进先出方式的存取 | 存取其他项很慢 |
队列 | 提供先进先出方式的存取 | 存取其他项很慢 |
链表 | 插入、删除块 | 查找慢 |
二叉树 | 查找、插入、删除快(如果树保持平衡) | 删除算法复杂 |
红-黑树 | 查找、插入、删除快。树总是平衡 | 算法复杂 |
2-3-4树 | 查找、插入、删除快。树总是平衡。类似的树对磁盘存储有用 | 算法复杂 |
哈希表 | 如果关键字已知则存取快。插入快 | 删除慢,对存储空间使用不充分 |
堆 | 插入、删除块,对最大数据项的存取快 | 对其他数据项存取慢 |