資料結構複習 鏈式二叉樹建立和遞迴遍歷

2022-03-22 14:53:47 字數 1301 閱讀 2825

二叉鍊錶中,每個結點除了儲存本身的資料外,還應該設定兩個指標域left和right,它們分別指向左孩子和右孩子。

當需要在二叉樹中經常尋找某結點的雙親,每個結點還可以加乙個指向雙親的指標域parent,這就是三叉鍊錶,

下面的兩幅圖分別就是,二叉鍊錶和三叉鍊錶的資料結構:

和          

二叉樹的結構有一些性質來用於幫助我們建樹:

對於一棵滿二叉樹樹中每乙個節點,我們可以對他從上到下,從左到右的進行編號i:

(1) 此結點為根結點,無雙親,那麼它的索引號為0

(2)  結點i的左孩子為2i + 1,右孩子為2i + 2

(3)  如果i > 0,當i為奇數時,它是其雙親結點的左孩子,它的兄弟為i + 1;當i為偶數時,它是其雙親結點的右孩子,它的兄弟結點為i – 1

**實現:

(1)二叉樹結點類

public class node 

public node getleft()

public void setleft(node left)

public node getright()

public void setright(node right)

public object getdata()

public void setdata(object data)

public string tostring()

}

(2)二叉樹類
public class binarytree 

public binarytree(string data)

public void add(node parent, int index)

}// 算出右結點的位置

int rightindex = 2 * index + 2;

if (rightindex < datastr.length()) }}

public void preorader(node node)

}public void midorder(node node)

}public void backorder(node node)

}public static void main(string args)

}

ps:

資料結構 鏈式二叉樹

include using namespace std typedef struct treenode treenode,treep 初始化二叉樹 void init tree treep root 前序遍歷二叉樹 void pre order treep rt 中序遍歷二叉樹 void mid o...

資料結構 鏈式二叉樹

define error 0 define true 1 define false 0 status是函式的型別,其值是函式結果狀態 如ok等 typedef int status typedef int telementtype ifndef bitree h included define bi...

資料結構 鏈式二叉樹

include iostream using namespace std typedef struct treenode treenode,treep 初始化二叉樹 void init tree treep root 建立二叉樹 void creat tree treep rt 前序遍歷二叉樹 vo...