说明
尽可能的详细的从 实现原理、复杂度、优缺点、注意事项、使用场景、算法应用等方面描述清楚各种常见不常见的数据结构
- 暂不涉及
图
各数据结构之间的衍生关系
数组
有限
个相同类型
的元素组成的集合叫做数组。- 实现原理: 在计算机内存里通常表现为一块连续的内存空间,一般在数组定义的时候划定好空间
- 时间复杂度: 存取均为 O(1)
动态数组
字典树(Trie)
二叉堆-Binary Heap
链表
哈希表
树
- 由n(n>=1)个有限结点组成一个具有层次关系的集合。每个结点有零个或多个子结点;没有父结点的结点称为根结点;每一个非根结点有且只有一个父结点;除了根结点外,每个子结点可以分为多个不相交的子树。
- 人话是: 链表
分叉
了,所以他就叫树了。
节点: 组成树的一个个节点
以二分搜索树为例:
class Node(object):
def __init__(self, e, left = None, right = None):
self.e = e
self.left = left
self.right = right