怎麼樣建立二叉樹呢?逐點插入法建立二叉樹?

2024-12-27 02:40:12 字數 2455 閱讀 3224

1樓:大少爺

1.建立二叉樹。

2.為了直觀的輸出樹,那麼可以選擇廣度遍歷。查查書應該有。

3.深度的話我這剛好有兩個函式。

#include

typedef struct{

char data;

telemtype;

typedef struct bitnode{telemtype data;

struct bitnode *lchild;

struct bitnode *rchild;

bitnode, *bitree;

void createbitree(bitree &t)char ch;

telemtype elem;

printf("請輸入樹節點, 空樹以#代替:")scanf("%c", ch);

ch;if(ch ==#

t = null;

elset = bitnode * malloc(sizeof(bitnode));

if(!t) exit(-1);

t->data = elem; /生成根。

createbitree(t->lchild);/構造左子樹。

createbitree(t->rchild);/構造右子樹。

void main()

bitree t;

createbitree(t);

2樓:

下面給出結構體和建立二叉樹的演算法,你自己寫個主函式加進去就行了,哦!對了,這些問題在一些關於資料結構的書上都有寫的。

typedef struct bnode //二叉樹結點結構體。

elemtype data;

struct bnode *lch,*rch;

bnode;

bnode *creat_bt0() 利用二叉樹的性質,藉助一維陣列v建立二叉樹。

bnode *t,*p,*v[20];

printf(" i data=?"

scanf("%d%d",&i,&e);

while(i!=0&&e!=0)

p=(bnode*)malloc(sizeof(bnode));

p->data=e;

p->lch=null;

p->rch=null;

v[i]=p;

if(i==1)

t=p;else

j=i/2;

if(i%2==0)

v[j]->lch=p;

elsev[j]->rch=p;

printf(" i data=?"

scanf("%d%d",&i,&e);

return(t);

逐點插入法建立二叉樹?

3樓:修傘不修鞋

1、第乙個數字50,作為根節點。

所有數字都要先跟50比,大的放右側,小的放左)

2、第二個數字72和50比,大於50,分叉分到右側。

3、第三個數字43跟50比 ,小於50,分叉分到左側。

先跟50比,應該歸到右側,但是右側已經有了乙個72了,85位置跟72重複了,所以要把衝突的位置作為節點繼續分叉,因此跟72比較以後,85大於72,分叉到72的右側。

跟50比,放到左側,左側有了43,因此位置重複,要把43作為節點繼續分叉,20小於43,因此放在43分叉後的左側。

跟50比,放到左側,但是有了43,繼續分叉,應該放在43分叉後的左側,但是這個位置有了20,所以要以20為節點繼續分叉,分叉後大於20,放在20下方的右側。

跟50比,小於50,放在左側,左側有了43,繼續分叉,因為大於43,因此放在43的右側,跟20一排。

和30同理類推,最終答案圖示如下:

4樓:養傲菡喻顏

二叉樹排序目標就是建立一顆二叉樹,對於每個節點,其左兒子小於它,右兒子大於它。

逐點插入的話,一開始以50作為根,接下來依次插入。

比如72比50大,作為50的右兒子。

43比50小,作為50的左兒子。

85比50大,但是這時50已經有右兒子75了,所以85與75比較,85比75大,作為75的右兒子。

同理,這樣就可以把二叉樹建出來了。

而查詢30時,因為30比50小,所以往左邊走。然後以此類推。。。

二叉樹的結點

5樓:匿名使用者

1.根結點是最頂上那個結點,金字塔的塔頂,葉子結點是最下面的結點,沒有子結點的結點就叫葉子結點2.度是說這個結點下面分出來的結點數,因為是2叉樹所以乙個結點最多隻能分出2個結點,所以度只能在0,1,2中選擇3.

度為0的結點,由於下面沒有再分出新結點(子結點),所以度為0的結點就是葉子結點是度為0的結點,一樣的,n1和n2是指度為1和2的結點。

6樓:秒懂百科

線索二叉樹:二叉樹的結點上加上線索的二叉樹。

平衡二叉樹定義,討論請問平衡二叉樹和二叉排序樹的關係

所謂平衡二叉樹是指樹中任一結點的左 右子樹高度大致相同。平衡二叉樹有很多種最著名的是由前蘇聯數學家adelse velskil和landis在1962年提出的,稱為avl樹。平衡二叉樹 avl樹 定義如下 平衡二叉樹或者是一棵空樹,或者是具有以下性質的二叉排序樹 1 它的左子樹和右子樹的高度之差絕對...

什麼叫做平衡二叉樹,什麼是平衡二叉樹

這要涉及到 bai滿二叉樹與完全二du叉樹的問題 滿二zhi叉樹是將一個 daon層二叉樹完全排滿的版二叉樹,第n層有權2 n個元素 n層完全二叉樹是將n層滿二叉樹最後一層從後向前依次去處少於2 n個元素 完全二叉樹是平衡二叉樹的一個特例,平衡二叉樹是將完全二叉樹的最後一層元素任意排在空位上的一種二...

什麼是平衡二叉樹,什麼是理想平衡二叉樹

它是一棵空樹或它的左右兩個子樹的高度差的絕對值不超過1,並且左右兩個子樹都是一棵平衡二叉樹。常用演算法有紅黑樹 avl treap 伸展樹等。在平衡二叉搜尋樹中,我們可以看到,其高度一般都良好地維持在o log2n 大大降低了操作的時間複雜度。平衡二叉 樹 balanced binary tree ...