Python数据结构篇(3)
数据结构总结
- List
- Dictionary
- Stack
- Queue
- Deque(双向队列)
- Binary_tree
- BinHeap
List
list的append(value)和insert(0, value),即一个从后面插入(后插),另一个从前面插入(前插),前者的效率远远高于后者。
Dictionary
Stack
LIFO结构,后进先出
逆波兰表达式求值
求一个十进制数的二进制表达
检查括号匹配问题以及图的深度搜索…
Queue
需要优先队列的问题或者进行广度优先搜索的问题…
Deque
左右两边都可以插入和删除的队列
Binary_tree
一个节点最多有两个孩子节点的树。如果是从0索引开始存储,那么对应于节点p的孩子节点是2p+1和2p+2两个节点,相反,节点p的父亲节点是(p-1)/2位置上的点
算术表达式建立一颗二叉树可以清楚看出表达式是如何计算的
二叉树的三种遍历方法(前序,中序,后序)…
|
|
BinHeap
二叉堆:根据堆的性质又可以分为最小堆和最大堆,是一种非常好的优先队列。在最小堆中孩子节点一定大于等于其父亲节点,最大堆反之。二叉堆实际上一棵完全二叉树,并且满足堆的性质。对于插入和查找操作的时间复杂度度都是O(logn)O(logn)。
|
|