資料結構試驗 二叉排序樹

2021-06-06 21:25:45 字數 1387 閱讀 6115

掌握二叉排序樹的構造

(1)構建乙個二叉排序樹(中序遍歷的時候會輸出排序結果),樹中結點資料取自陣列a[10]。a[10]=

(2)分別用三種遍歷方法輸出遍歷結果。

(3)鍵盤輸入乙個值x,要求在生成好的二叉排序樹中查詢這個值x,如果找到,則輸出「找到了」,沒有找到,則輸出「沒有找到」

/*******************

遞迴遍歷左右子樹,

條件是,左右子樹訪問到null

*******************/

if(p->left != null)

if(p->right != null)

}//【中序遍歷】層次二叉樹

void tree::inorder()

/*******************

先遍歷到最左節點,

然後,訪問該節點,

如果該節點不是null,

就【遞迴遍歷】左、中、右節點。

*******************/

if(p->left != null)

cout ";//visit()

if(p->right != null)

}//【後序遍歷】層次二叉樹

void tree::postorder()

/*******************

先遍歷到最左節點,

然後,訪問該節點,

如果該節點不是null,

就【遞迴遍歷】左、中、右節點。

*******************/

if(p->left != null)

if(p->right != null)

cout ";//visit()

}void tree::recursive_search(node* root,int temp)

if(p->left != null)

if(p->right != null)

}void tree::search(int temp)

void main()

;//定義乙個陣列。

tree tree;

tree.buildtree(data,10);//構造樹

/************************************

用三種方法遍歷我們構造出來的排序二叉樹!

************************************/

tree.inorder();

tree.preorder();

tree.postorder();

int temp;

cout<<"請輸入要查詢的值:">temp;

tree.search(temp);//開始查詢

switch(flag)

}

資料結構 二叉排序樹

二叉排序樹是一種特殊結構的二叉樹,它作為一種表的組織手段,通常被稱為 樹表。可以作為一種排序和檢索的手段。定義 二叉排序樹或是空樹,或是具有下述性質的二叉樹 其左子樹上所有結點的資料值均小於根結點的資料值 右子樹上所有結點的資料值均大於或等於根結點的資料值。左子樹和右子樹又各是一棵二叉排序樹。對二叉...

資料結構 二叉排序樹

二叉排序樹 binarysorttree 具有下列性質的二叉樹 1 若左子樹不空,則左子樹上所有結點的值均小於它的根結點的值 2 若右子樹不空,則右子樹上所有結點的值均大於它的根結點的值 3 左 右子樹也分別為二叉排序樹 include includeusing namespace std type...

資料結構 二叉排序樹

如果需要乙個滿足 支援排序性 高效插入 刪除操作 高效查詢的資料結構,怎麼做?先看看一些簡單的資料結構 1 排序順序表 陣列 查詢可以採用折半查詢演算法,時間效率為o log2n 插入 刪除操作的時間複雜度為o n 資料量大時,效率太低。2 排序單鏈表 只能採用順序查詢,時間複雜度為o n 不能採用...