1.樹的分類:
●一般樹
●二叉樹
●一般二叉樹
●滿二叉樹
●完全二叉樹
●森林
若干不交叉的樹放在一起就是森林。
2.樹的存儲
●二叉樹的存儲
⊿連續存儲
要使用連續存儲,一定要先將二叉樹補全爲完全二叉樹,然後再進行連續存儲。
⊿鏈式存儲
將每個節點定義成一個結構體,包含有三個組成部分,一部分爲節點本身的數據, 一部分爲左孩子,一部分爲右孩子
●一般樹的存儲
●雙親表示法:
●孩子表示法:
●雙親孩子表示法:
●二叉樹表示法:
將一般樹轉換成二叉樹,再將此二叉樹存儲即可。
轉換原則:保證每個節點的左指針域指向他的第一個孩子;
右指針域指向他的下一個兄弟。
●森林的存儲
先把森林轉換成二叉樹,再存儲二叉樹。
3.二叉樹的操作
●二叉樹的遍歷
●先序遍歷
方法:先訪問根節點,再先序遍歷根節點的左子樹,最後先序遍歷根節點的右子樹
●中序遍歷
方法:先中序訪問根節點的左子樹,然後訪問根節點,最後中序訪問根節點的右子 樹
●後序遍歷
方法:先後序訪問根節點的左子樹,然後後序訪問根節點的右子樹,最後訪問根節 點
●根據其中兩種遍歷結果求二叉樹的結構(只有如下兩種):
●根據先序遍歷和中序遍歷求二叉樹
●根據中序遍歷和後序遍歷求二叉樹