# 常用数据结构
--------------------------------------------------------------------------------
## 树(Tree)
- 概念:树是n(n>=0)个节点的有限集T,T为空时称为空树,否则他满足如下两个条件:
- 有且仅有一个特定的根(root)节点
- 其余的节点可以分为m(m>=0)个互不相交的子集T1,T2,T3...Tm,其中每个子集本身又是一棵树,称之为子树(SubTree)
- 特性:一棵非空树是由若干棵子树构成的,而子树又可由若干棵更小的子树构成。而这里的子树可以是叶子也可以是分支
- 二叉树: 就是每个节点最多有两个子树的树结构
- 满二叉树:除最后一层无子节点,每一层的所有节点都有两个子节点
- 完全二叉树:只有最下面的两层子节点能小于2,且最下面一层只能空缺右边节点
## 链表
- 链表由一系列结点组成,每个结点包含两部分:一是储存数据元素的数据域,二是储存下一个结点地址的指针域
## 数组
- 概念:元素按序排列的集合
## 堆/栈
- 堆:树形数据结构
- 栈:先进后出特殊线性表
## 队列
-概念:表尾插入并表头删除的先进先出的特殊线性表
## 图
- 概念:图是由非空的顶点集合和一个描述顶点之间的关系——边(或弧)的集合组成。
## 散列表