二叉树的存储结构
① 顺序存储结构
② 链式存储结构:二叉链表;三叉链表
二叉树的顺序存储结构实现:按满二叉树的结点层次编号,依次存放二叉树中的数据元素
存储的类型定义:
// 二叉树顺序存储表示 #define MAXTSIZE 100 // TElemType 这里表示的类型,比如 int 型,String 型,都可以替换 Typedef TElemType SqBiTree[MAXTSIZE]; // 再用数组的名字“SqBiTree”定义一个变量 SqBiTree bt;
补充:SqBiTree bt;相当于 TElemType bt[MAXTSIZE];
例:
解决思路:
二叉树顺序存储的缺点:
① 一个数组的大小是固定的,如果元素个数变化极大,则不合适;
② 最坏情况,深度为 k 的且有 k 个结点的单支树需要长度为 2^k - 1 的一维数组
过于浪费空间。
特点:结点间的关系蕴含在其存储位置中,浪费空间,适于存满二叉树和完全二叉树