二叉搜尋樹:二叉查詢樹(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...