【数据结构】二叉树

来源:互联网 发布:java无jre目录怎么办 编辑:程序博客网 时间:2024/06/10 01:01

树的结构定义是一个递归的定义。

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树。


0 0
原创粉丝点击