【数据结构】二叉树
2016-01-21 16:37
309 查看
树的结构定义是一个递归的定义。
1、二叉树的顺序存储结构:用一组地址连续的存储单元依次从上至下,从左至右,存储二叉树上的结点元素。即第i个结点元素存储在下标第i-1的位置上。
#define MAX_SIZE 100
typedef TElemType SqBiTree[MAX_SIZE] //0 号单元存储根节点
2、二叉树的二叉链表存储表示
typedef struct BiTNode{
TElemType data;
struct BiTNode *lchild, *rchild; //左右孩子指针
}BiTNode, *BiTree;
3、遍历二叉树:先序遍历(根左右),中序遍历(左根右),后序遍历(左右根)。遍历二叉树的时间复杂是O(n)。
4、树的存储结构:双亲表示法、孩子表示法、孩子兄弟表示法。
5、Huffman树,即最优树,是一类带权路径长度最短的树。
Huffman树构造方法:a、根据给定的n个权值根结点,选取权值最小的两根结点作为左右子树构成新的二叉树,在集合中删除这两个根结点,加入新二叉树,重复上述步骤,直到构成一个棵树,即得到Huffman树。
1、二叉树的顺序存储结构:用一组地址连续的存储单元依次从上至下,从左至右,存储二叉树上的结点元素。即第i个结点元素存储在下标第i-1的位置上。
#define MAX_SIZE 100
typedef TElemType SqBiTree[MAX_SIZE] //0 号单元存储根节点
2、二叉树的二叉链表存储表示
typedef struct BiTNode{
TElemType data;
struct BiTNode *lchild, *rchild; //左右孩子指针
}BiTNode, *BiTree;
3、遍历二叉树:先序遍历(根左右),中序遍历(左根右),后序遍历(左右根)。遍历二叉树的时间复杂是O(n)。
4、树的存储结构:双亲表示法、孩子表示法、孩子兄弟表示法。
5、Huffman树,即最优树,是一类带权路径长度最短的树。
Huffman树构造方法:a、根据给定的n个权值根结点,选取权值最小的两根结点作为左右子树构成新的二叉树,在集合中删除这两个根结点,加入新二叉树,重复上述步骤,直到构成一个棵树,即得到Huffman树。
相关文章推荐
- 数据结构_8:排序:C语言
- 数据结构_8:查找:Hash:C++
- 数据结构_8:查找:Hash:C语言
- 数据结构_8:查找:C++
- 数据结构_8:查找:平衡二叉树
- 数据结构_8:查找:二叉排序树
- 再谈单链表
- MySQL索引背后的数据结构及算法原理
- 数据结构算法经典合集
- 算法与数据结构
- 数据结构(3)归并排序
- pyhton 数据结构二
- 数据结构 线性表―单链表
- Java核心技术笔记——数据结构(2)
- 数据结构和算法学习第3天:队列的相关知识
- 二叉树学习(一)
- 数据结构和算法学习第2天:栈的相关知识
- 菜鸟nginx源代码剖析数据结构篇(一)动态数组ngx_array_t
- 数据结构实现之队列
- 数据结构实现之栈