二叉搜尋樹的建立

2021-08-08 07:21:53 字數 924 閱讀 5736

二叉搜尋樹:二叉查詢樹(binary search tree),(又:二叉搜尋樹,二叉排序樹)它或者是一棵空樹,或者是具有下列性質的二叉樹: 若它的左子樹不空,則左子樹上所有結點的值均小於它的根結點的值; 若它的右子樹不空,則右子樹上所有結點的值均大於它的根結點的值; 它的左、右子樹也分別為二叉排序樹。
1.結構體型別:

typedef

struct nodebtnode;

2.整體架構

①在for迴圈內建立每乙個節點;

②尋找該節點應當插入的位置;

③判斷新節點應當插入上一節點的左側還是右側,並插入;

④迴圈n次後,返回根節點;

3.核心**

btnode* createtree(int *data,int n)

//從white迴圈出來後,pa指向了待插入的節點,此時再判斷新節點應當往左還是右插

if(p->data

data) pa->left=p;

else pa->right=p;

}//直到for迴圈出來後,該二叉搜尋樹建立完成,返回root根節點即可

return root;

}

利用遞迴遍歷輸出該二叉樹

void print(btnode* root)

}

主函式如下:

int main(void);

btnode *root=createtree(data,8);

print(root);

}

4.效果圖

二叉搜尋樹的建立

二叉搜尋樹又稱二叉排序樹,最基本形態就是一顆空樹,它具有以下乙個性質 如果乙個節點有左子樹,那麼左子樹上的節點值都小於該節點 如果乙個節點有右子樹,那麼右子樹上的節點值都大於該節點 最優情況下,二叉搜尋樹為完全二叉樹,其平均比較次數為 log2n 最差情況下,二叉搜尋樹退化為單支樹,其平均比較次數為...

二叉搜尋樹 二叉搜尋樹

題目 二叉搜尋樹 time limit 2000 1000 ms j a others memory limit 32768 32768 k j a others total submission s 6945 accepted submission s 3077 problem descripti...

陣列建立二叉搜尋樹

最近學習了一下用陣列建立二叉搜尋樹,感覺自己又提高了一點點,好高興!下面寫個模板,功能是 輸入 n 接下來輸入 n 個數,建立二叉搜尋樹。include include include include include using namespace std int arr 1000 void set...