12 二叉搜尋樹

2021-07-30 12:53:45 字數 557 閱讀 4526

#1,定義

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

#2,先序遍歷,中序遍歷,後序遍歷

先序遍歷也叫做先根遍歷、前序遍歷,可記做根左右(二叉樹父結點向下先左後右)。首先訪問根結點然後遍歷左子樹,最後遍歷右子樹。在遍歷左、右子樹時,仍然先訪問根結點,然後遍歷左子樹,最後遍歷右子樹,如果二叉樹為空則返回。

中序遍歷首先遍歷左子樹,然後訪問根結點,最後遍歷右子樹。在遍歷左、右子樹時,仍然先遍歷左子樹,再訪問根結點,最後遍歷右子樹。

後序遍歷首先遍歷左子樹,然後遍歷右子樹,最後訪問根結點,在遍歷左、右子樹時,仍然先遍歷左子樹,然後遍歷右子樹,最後遍歷根結點。

#3,《演算法導論》習題1

對於關鍵字集合,分別畫出高度為2,3,4,5,6的二叉搜尋樹。

二叉搜尋樹 二叉搜尋樹

題目 二叉搜尋樹 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...

第12 章 二叉搜尋樹

搜尋樹結構支援許多動態集合操作,因此,使用一棵搜尋樹既可以作為乙個字典又可以作為乙個優先佇列。二叉搜尋樹的基本操作所花費的時間與這棵樹的高度成正比。對於 n 個節點的乙個完全二叉樹來說,這些操作的最壞執行時間為 lgn 然而,如果這棵樹是一條 n 個節點組成的線性鏈,那麼同樣的操作就要花費 n 的最...

二叉搜尋樹 修剪二叉搜尋樹

第一反應是重構,看來別人的解答發現,其實不用重構那麼複雜。treenode trimbst treenode root,int low,int high if root val high 下一層處理完左子樹的結果賦給root left,處理完右子樹的結果賦給root right。root left ...