遍歷:訪問二分搜尋樹的每乙個元素。
深度優先遍歷
每乙個,節點訪問三次。第一次訪問節點的時候最數進行操作。
public void preorder()
// 前序遍歷以node為根的二分搜尋樹,遞迴
private void preorder(node node)
} public string tostring()
//生成以node為節點,深度為depth的描述二叉樹的字串
private void generatebststring(node node,int depth,stringbuilder res)
generatebststring(node.left,depth+1,res);
generatebststring(node.right,depth+1,res);
}public string generatedepthstring(int depth)
if (cur.left == null)
} }
先訪問左子樹,再訪問節點,再訪問右子樹
第二次訪問資料的時候進行操作。
public void inorder()
public void inorder(node node)
先遍歷左邊的,再遍歷右邊的,再遍歷節點。
第三次訪問資料的時候進行操作。
public void postorder()
private void postorder(node node)
從左到右。(佇列)
public void levelorder()
if(cur.right!=null)
} }
可更快找到想要查詢的元素。
常用與演算法的設計中-無全圖的最短的路徑。
ps:在定義乙個方法的時候,如果不想讓使用者看到方法的內容可以再定義乙個private方法,用public方法呼叫private方法
二分搜尋樹的遍歷
對於一棵二叉樹來說,如果我們想要把這棵樹中的所有節點都給遍歷一遍,那麼我們就需要了解二叉樹的遍歷方式。二叉樹的遍歷方式分為以下三種 二叉樹的乙個簡單的結構如下圖所示 對於其中的 前 中 後 我們都可以理解為是根節點的訪問順序。遍歷時,我們分為三個階段 前 中 後 對於前序遍歷來說 也就是在前階段訪問...
二分搜尋樹 中序遍歷
二分搜尋樹的中序遍歷結果是順序的 package tree 具有可比性的泛型 public class bstcomparable private node root private int size public bst public intsize public boolean isempty ...
5 5 二分搜尋樹的遍歷(深度優先遍歷)
首先嘗試走到最深。遍歷方式 對遍歷方式解釋 前序遍歷 先訪問當前節點,再依次遞迴訪問左右子樹。中序遍歷 先遞迴訪問左子樹,再訪問自身 再遞迴訪問右子樹。後序遍歷 先遞迴訪問左右子樹,再訪問自身節點。釋放整個二叉樹的時候會使用到後序遍歷。把握要點 訪問當前節點的順序是在前面 中間還是在後面。其實,的實...