二叉樹入門簡析

2022-10-09 12:57:10 字數 1372 閱讀 4490

給出一些二叉樹的入門級(確信)

使用方法:

1

//用遞迴的方式建立乙個完全二叉樹

2void bulid(intt)8

9//可以用陣列下標模擬節點編號,用多個陣列來記錄節點資訊

10struct treenode1 a[100001

];14

15//

也可以與鍊錶類似,用指標儲存二叉樹的父節點&子節點 同時要記錄根節點指標

16struct

treenode2;

20 treenode2 *root;

2122

//以下就以指標操作來簡介二叉樹的基本操作

2324

//新建節點

25struct

treenode29}

30 treenode *p = new

treenode(x);

3132

//根節點初始化

33 treenode *root;

34 root = new

treenode(v);

3536

//刪除節點(暫空)

3738

//插入子節點

39void insert(treenode *fa, treenode *p,int

flag)

45else

48 p->fa =fa;49}

5051 treenode *p = new

treenode(v);

52insert(fa,p,flag);

5354

55//

二叉樹的遍歷順序(先序遍歷、中序遍歷、後序遍歷)<-以根節點的訪問時間作為區分

5657

//先序遍歷(dlr)

58void preorder(treenode *p)

63pre order(root);

6465

//中序遍歷(ldr)

66void inorder(treenode *p)

71inorder(root);

7273

//後序遍歷(lrd)

74void postorder(treenode *p)

79postorder(root);

8081

//層級遍歷(bfs序列)(基於佇列)

82 treenode *q[n];

83void bfs(treenode *root)93}

94bfs(root);

9596

//要實現計算每個節點的深度也不難

97//

root->d = 1; 每次++時p->l/r->d=p->d+1;

兄弟二叉樹簡析

一般來說,大學開設的資料結構的課程更偏向於理論,對於具體問題的解決方法需要同學自己去練習掌握。前幾天,山東科技大學的乙個高中同學需要做設計,這個設計不是一般意義上的小專案而是乙個程式設計練習,但是需要答辯。問題還是那個很經典的問題 家譜。設計乙個家譜最核心的問題就是家譜的資料結構,毫無疑問,一定是採...

二叉樹入門

對二叉樹的儲存,即可採用順序儲存結構 陣列 也可採用鏈式儲存結構 鍊錶 在鏈式儲存結構中,每乙個節點都含有乙個資料域,兩個指標域 分別用來指向該節點的左 右子樹。利用這種節點構成的鏈式儲存結構稱為二叉鍊錶。為簡單起見,給定一資料集,以該資料集中的元素建立一完全二叉樹。這裡不考慮非完全二叉樹的情況。如...

二叉樹入門

樹是模擬實現樹幹和樹枝的一種資料結構,如同樹根一樣,樹結構都有乙個 根結點 根節點之下如同樹的樹枝一樣,可以擁有0到n個 子結點 也就是樹的 分支 如上圖。a就是這棵樹的根節點,b c就是結點a的子結點。也就是樹枝。每一根樹枝當然可以有小樹枝,也就是子節點本身可以擁有子結點。途中d和e是b的子結點。...