C 二叉樹的表達 遍歷二叉樹

2021-09-23 10:14:40 字數 1775 閱讀 9789

​ 樹結構是一種資料結構,它由節點(node)以及連節點的邊(edge)構成。

​ 如果一棵樹具有乙個叫為根(root)的特殊節點,那麼這棵樹稱作有根數(rooted tree)。

​ 樹結構有如下的定義:

二叉樹的定義:擁有乙個根節點,所有節點的子節點不超過2的樹稱為二叉樹。

#include 

#include

using namespace std;

const

int max =

100000

;const

int nil =-1

;struct node

;node t[max]

;int n,d[max]

,h[max]

;void

setdepth

(int u,

int d)

intsetheight

(int u)

intgetsibling

(int u)

void

print

(int u)

}int

main()

for(

int i =

0;i(t[i]

.parent == nil)

root = i;

setdepth

(root,0)

;setheight

(root)

;for

(int i =

0;i)print

(i);

return0;

}/*input:

90 1 4

1 2 3

2 -1 -1

3 -1 -1

4 5 8

5 6 7

6 -1 -1

7 -1 -1

8 -1 -1

*//*

output

node 0: parent = 0, silbing = 4, degree = 2, depth = 0, height = 3, internal node

node 1: parent = 0, silbing = 1, degree = 2, depth = 0, height = 1, internal node

node 2: parent = 1, silbing = 2, degree = 0, depth = 0, height = 0, leaf

node 3: parent = 1, silbing = 3, degree = 0, depth = 0, height = 0, leaf

node 4: parent = 0, silbing = 4, degree = 2, depth = 0, height = 2, internal node

node 5: parent = 4, silbing = 5, degree = 2, depth = 0, height = 1, internal node

node 6: parent = 5, silbing = 6, degree = 0, depth = 0, height = 0, leaf

node 7: parent = 5, silbing = 7, degree = 0, depth = 0, height = 0, leaf

node 8: parent = 4, silbing = 8, degree = 0, depth = 0, height = 0, leaf

*/

構建二叉樹 遍歷二叉樹

陣列法構建二叉樹 public class main public static void main string args 用陣列的方式構建二叉樹 public static void createbintree 把linkedlist集合轉成二叉樹的形式 for int j 0 j 最後乙個父節...

二叉樹 二叉樹

題目描述 如上所示,由正整數1,2,3 組成了一顆特殊二叉樹。我們已知這個二叉樹的最後乙個結點是n。現在的問題是,結點m所在的子樹中一共包括多少個結點。比如,n 12,m 3那麼上圖中的結點13,14,15以及後面的結點都是不存在的,結點m所在子樹中包括的結點有3,6,7,12,因此結點m的所在子樹...

玩轉二叉樹(二叉樹的遍歷)

時間限制 400 ms 記憶體限制 65536 kb 長度限制 8000 b 判題程式 standard 作者 陳越 給定一棵二叉樹的中序遍歷和前序遍歷,請你先將樹做個鏡面反轉,再輸出反轉後的層序遍歷的序列。所謂鏡面反轉,是指將所有非葉結點的左右孩子對換。這裡假設鍵值都是互不相等的正整數。輸入格式 ...