二叉樹的存儲結構
① 順序存儲結構
② 鏈式存儲結構:二叉鏈表;三叉鏈表
二叉樹的順序存儲結構實現:按滿二叉樹的結點層次編號,依次存放二叉樹中的數據元素
存儲的類型定義:
// 二叉樹順序存儲表示 #define MAXTSIZE 100 // TElemType 這里表示的類型,比如 int 型,String 型,都可以替換 Typedef TElemType SqBiTree[MAXTSIZE]; // 再用數組的名字“SqBiTree”定義一個變量 SqBiTree bt;
補充:SqBiTree bt;相當於 TElemType bt[MAXTSIZE];
例:
解決思路:
二叉樹順序存儲的缺點:
① 一個數組的大小是固定的,如果元素個數變化極大,則不合適;
② 最壞情況,深度為 k 的且有 k 個結點的單支樹需要長度為 2^k - 1 的一維數組
過於浪費空間。
特點:結點間的關系蘊含在其存儲位置中,浪費空間,適於存滿二叉樹和完全二叉樹