一、實驗目的
1.熟練理解樹和二叉樹的相關概念,掌握儲存結構和相關操作的實現
2.掌握樹的順序結構的實現
3.學會運用樹的知識解決實際問題
二、實驗內容
自己確定乙個二叉樹(樹結點型別、數目和結構自定)利用順序結構方法儲存。實現樹的結構,並完成:
(1)層序輸出結點資料;
(2)以合理的格式,輸出各個結點和雙親、孩子結點資訊;
(3)輸出所有的葉子結點資訊;
(4)分析你的演算法對於給定的二叉樹的儲存效率。
三、實驗步驟
1 假定二叉樹按層序輸出資料為abcdefghijk,結點的資料型別為字元型、
2.當輸出結點的孩子資訊時,必須保證結點非葉子,所以如m為總的結點數,則非葉子數為m/2;當輸出結點的雙親時,根無雙親,所以不應包含在內;當輸出所有結點的資訊時應按層序輸出。
3.完整程式為
#include using namespace std;
const int m=11;
class tree;
void tree::in(char b)
void tree::show()
void tree::showre()
void tree::showye()
void main()
; t.in(t);
cout<
t.show();
cout<
t.showre();
cout<
t.showye();
}
4.總結:如果結點資料為整型或字元型此程式還適用
執行結果:
收穫:熟練掌握了結點和葉子之間的關係
不足:此程式不能用於結點資訊為字串
疑惑:如果才能在結點資訊裡存入字串
順序儲存二叉樹
從資料儲存來看,陣列儲存方式和樹的儲存方式可以相互轉換,即陣列可以轉換成樹,樹也可以轉換成陣列,看下面的示意圖。順序二叉樹通常只考慮完全二叉樹 第n個元素的左子節點為 2 n 1 第n個元素的右子節點為 2 n 2 第 n 個元素的父節點為 n 1 2 n 表示二叉樹中的第幾個元素 按 0 開始編號...
順序儲存二叉樹
從資料儲存來看,陣列儲存方式和樹的儲存方式可以相互轉換,即陣列可以轉換成樹,樹也可以轉換成陣列。陣列轉換成樹即是將陣列中的各個元素按照二叉樹的層次儲存起來的過程。原陣列 1,2,3,4,5,6,7 轉換為順序二叉樹如下圖所示 順序儲存二叉樹的特點 通常只考慮完全二叉樹 第n個元素的左子節點為2 n ...
順序儲存二叉樹
package com.datastructure.tree.binarytree 順序儲存二叉樹 1。順序儲存二叉樹通常只考慮完全二叉樹 2。第n個元素的左子節點為2 n 1 3。第n個元素的右子節點為2 n 2 4。第n個元素的父親節點為 n 1 2 public class sequentia...