資料結構C語言 簡單二叉樹的實現

2021-10-05 23:16:49 字數 2386 閱讀 8062

深度:層數。

度:子樹的數量。

葉子:沒有子節點的節點。

定義:每個節點至多有兩個子節點,且需要區分左孩子和右孩子。

滿二叉樹:深度為 k

kk 節點數量為 2k−

12^k-1

2k−1

的二叉樹。

完全二叉樹:只有最後兩層的節點可以不滿,且只有乙個子節點的節點,其子節點必為左孩子的二叉樹。

/*	

* 二叉樹 如下

* a

* b c

* d e f g

* h …… …… …… …… …… ……

* 我們假設a的編號為1,b的編號為2,…………。則我們可以總結出來節點編號為n的節點,

*其左子樹的編號為2n,右子樹的編號為2n+1.通過這種方式,我們能夠通過順序結構儲存

*二叉樹。

* *優點:同順序表。

*缺點:空間利用率低,容易產生大量空閒空間;不能適用其他型別的樹。

* */

/*

* 構造節點結構體

* * struct _node_st

* * 使用這種節點構造二叉樹,如果沒有子節點,就將對應的指標指空。

* ** */

/*	

* 二叉樹 如下

* a

* b c

* d e f

* g h i

* * */

abcdefghi

遍歷順序:根節點–>左子樹–>右子樹

a bdg cehi f

遍歷順序:左子樹–>根節點–>右子樹

b dg a hei c f

左子樹–>右子樹–>根節點

gd b hie f c a

main.c

#include

#include

#define namesize 32

typedef

struct score_st score;

struct score_st

;struct node_st

;void

print_s

(const

void

*record)

intinsert

(struct node_st *

*root, score *data)

node->data =

*data;

node->l =

null

; node->r =

null

;*root = node;

return0;

}if(data->id <=

(*root)

->data.id)

else

}score *

find

(struct node_st *root,

int id)

if(id == root->data.id)

if(id <= root->data.id)

else

}void

draw_

(struct node_st *root,

int level)

draw_

(root->r, level+1)

;for

(int i =

0; i < level; i++

)print_s

(&root->data)

;draw_

(root->l, level+1)

;}void

draw

(struct node_st *root)

intmain()

;int i;

struct node_st *tree =

null

; score tmp;

for(i =

0; i <

sizeof

(arr)

/sizeof

(*arr)

; i++

)#if 0

//find

int tmpid =2;

score *datap;

datap =

find

(tree, tmpid);if

(datap ==

null

)else

#endif

draw

(tree)

;return0;

}

C語言資料結構二叉樹簡單應用

c語言資料結構二叉樹簡單應用 在電腦科學中,二叉樹是每個節點最多有兩個子樹的樹結構。通常子樹被稱作 左子樹 left subtree 和 右子樹 right subtree 接下來我就在這裡給大家介紹一下二叉樹在演算法中的簡單使用 我們要完成總共有 1 二叉樹的建立 2 二叉樹的先中後序遞迴遍歷 3...

C語言 資料結構 二叉樹

一 樹的概念及結構 1.樹是一種非線性的資料結構,它是由n n 0 個有限結點組成乙個具有層次關係的集合。把它叫做樹是因為它看起來像一棵倒掛的樹,也就是說它是根朝上,而葉朝下的。它具有以下的特點 每個結點有零個或多個子結點 沒有父結點的結點稱為根結點 每乙個非根結點有且只有乙個父結點 除了根結點外,...

資料結構 二叉樹(c語言)

一下 是二叉樹的相關 包括二叉樹的根據前序遍歷建立二叉樹。根據前序遍歷 中序遍歷與後續遍歷依次查詢二叉樹的各個節點。include 定義二叉樹節點資料型別 typedef struct bitnode bitnode,bitree bitree為指向bitnode這種結構的指標 前序構造二叉樹函式 ...