搜尋二叉樹:左節點小於根節點,根節點小於右節點。如果對搜尋二叉樹進行中序遍歷的話,那就是乙個排好序的陣列。
搜尋二叉樹具有查詢快,刪除快,新增快,等於綜合了順序儲存和鏈式儲存的優點。
包含了三個方法,新增,刪除,查詢
package com.wuxudong.binarysorttree;
public class node
//新增方法
public void add(node node)else if (this.value
}@override
public string tostring() ';}}
package com.wuxudong.binarysorttree;
public class binarysorttree else
}//中序遍歷,即按照已經排好的順序
public void midshow()
//查詢節點
public node search(int value)else
}public void deletenode(int i) else
//找出刪除節點的父節點
node parent = findparent(node);
//如果刪除的節點是葉子節點
if (node.left==null&&node.right==null&&parent.left==node)else if (node.right==null&&node.left==null&&parent.right==node)else if (node.right==null&&node.left!=null)else if (node.left==null&&node.right!=null)else }}
public int findrightmin(node node)
deletenode(target.value);
return target.value;
}public node findparent(node node) else if (root==node)
else}}
package com.wuxudong.binarysorttree;
public class testbinarysorttree ;
binarysorttree tree=new binarysorttree();
for (int i:arr)
//node node= tree.search(7);
//刪除節點
tree.deletenode(12);
tree.midshow();}}
二叉樹 還原二叉樹 二叉搜尋樹
先序遍歷的特點 先遍歷根結點,再遍歷左子樹,最後再遍歷右子樹 中序遍歷的特點 先遍歷左子樹,再遍歷根結點,最後再遍歷右子樹 後序遍歷的特點 先遍歷左子樹,再遍歷右子樹,最後再遍歷根結點 舉例 先序遍歷 a b d f g h i e c 中序遍歷 f d h g i b e a c 如上,根據先序遍...
樹 二叉樹 二叉搜尋樹
給定乙個二叉樹,判斷其是否是乙個有效的二叉搜尋樹。假設乙個二叉搜尋樹具有如下特徵 節點的左子樹只包含小於當前節點的數。節點的右子樹只包含大於當前節點的數。所有左子樹和右子樹自身必須也是二叉搜尋樹。示例 1 輸入 2 13輸出 true 示例 2 輸入 5 14 3 6輸出 false 解釋 輸入為 ...
排序二叉樹or搜尋二叉樹or查詢二叉樹
排序二叉樹,搜尋二叉樹,查詢二叉樹都是乙個意思,只是叫法不同而已。下面的文章中我們統稱為排序二叉樹。本文主要是針對高中資訊學,因此其中不涉及到指標,所有需要用指標的地方都直接使用陣列進行模擬。排序二叉樹定義 1 若左子樹不空,則左子樹上所有結點的值均小於或等於它的根結點的值 2 若右子樹不空,則右子...