構(gòu)造二叉樹的過程 二叉排序樹的構(gòu)造和查找方法?
二叉排序樹的構(gòu)造和查找方法?二叉排序樹的構(gòu)造過程:按照給定的順序,將節(jié)點(diǎn)插入到二叉排序樹中,再將新節(jié)點(diǎn)插入到二叉排序樹中,以保證插入的二叉樹仍然符合二叉排序樹的定義。插入過程:如果二叉排序樹為空,則將
二叉排序樹的構(gòu)造和查找方法?
二叉排序樹的構(gòu)造過程:按照給定的順序,將節(jié)點(diǎn)插入到二叉排序樹中,再將新節(jié)點(diǎn)插入到二叉排序樹中,以保證插入的二叉樹仍然符合二叉排序樹的定義。插入過程:如果二叉排序樹為空,則將要插入的節(jié)點(diǎn)*s作為根節(jié)點(diǎn)插入到空樹中;如果不為空,則將要插入的節(jié)點(diǎn)的關(guān)鍵字s->key與樹根關(guān)鍵字T->key進(jìn)行比較。如果s->key=t->key,則無需插入;如果s->key< t->key,則插入到根的左子樹中;如果s->key> t->key,則插入到根的右子樹中。插入子樹的過程與插入樹的過程相同。此過程將繼續(xù),直到節(jié)點(diǎn)*作為新葉插入到二叉排序樹中,或者直到在樹中找到具有相同關(guān)鍵字的節(jié)點(diǎn)為止。注:①每插入一個(gè)新節(jié)點(diǎn),在二叉排序樹中都是一個(gè)新的葉節(jié)點(diǎn)。(2) 不同的關(guān)鍵字序列可以得到不同的二叉排序樹。(3) 對(duì)于任意的關(guān)鍵字序列,構(gòu)造一個(gè)二叉排序樹對(duì)關(guān)鍵字進(jìn)行實(shí)質(zhì)性排序。搜索過程類似,從根節(jié)點(diǎn)開始進(jìn)行比較,小于根節(jié)點(diǎn)的在左子樹中,大于根節(jié)點(diǎn)的在右子樹中,這樣查找下去,直到搜索成功或不成功(與葉節(jié)點(diǎn)相比)。
給定一個(gè)排序數(shù)組,如何構(gòu)造一個(gè)二叉排序樹?
二進(jìn)制排序樹:空樹或具有以下屬性的二進(jìn)制樹:
1。如果其左子樹不為空,則左子樹上所有節(jié)點(diǎn)的值都小于其根節(jié)點(diǎn)的值;
2。如果其右子樹不為空,則右子樹上所有節(jié)點(diǎn)的值都大于其根節(jié)點(diǎn)的值;
3。它的左右子樹也是二叉排序樹。
二叉排序樹的構(gòu)造是唯一的嗎?
不,對(duì)于相同的數(shù)據(jù)集,如果它們的輸入順序不同,我們將得到兩個(gè)不同的二進(jìn)制排序樹。