二叉排序樹怎么構(gòu)造詳細(xì)步驟 給定一個(gè)排序數(shù)組,如何構(gòu)造一個(gè)二叉排序樹?
給定一個(gè)排序數(shù)組,如何構(gòu)造一個(gè)二叉排序樹?二叉排序樹:空樹或具有以下屬性的二叉樹:1。如果其左子樹不為空,則左子樹上所有節(jié)點(diǎn)的值都小于其根節(jié)點(diǎn)的值;2。如果其右子樹不為空,則右子樹上所有節(jié)點(diǎn)的值都大于
給定一個(gè)排序數(shù)組,如何構(gòu)造一個(gè)二叉排序樹?
二叉排序樹:空樹或具有以下屬性的二叉樹:
1。如果其左子樹不為空,則左子樹上所有節(jié)點(diǎn)的值都小于其根節(jié)點(diǎn)的值;
2。如果其右子樹不為空,則右子樹上所有節(jié)點(diǎn)的值都大于其根節(jié)點(diǎn)的值;
3。它的左右子樹也是二叉排序樹。
二叉排序樹的構(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,則無(wú)需插入;如果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)相比)。