二叉樹(Java實現)

2021-08-17 02:32:07 字數 1426 閱讀 8001

1.二叉樹

陣列:查詢快,插入慢

鍊錶:查詢慢,插入快

而二叉樹結構既能快速查詢,也能快速新增

2.特點

乙個節點的左子節點的關鍵字值小於這個節點,右子節點的關鍵字值大於或等於這個父節點

3.原始碼實現

public class binarytree else if(key > current.id)else

} return null; }

public void insert(int id,string v)else

}else }}

} }public boolean delete(int key)else

if(null == current)

} // 2.1被刪除節點沒有子節點

if(null == current.left && null == current.right)elseelse

}}

// 2.2被刪除節點有乙個子節點

else if(null == current.left)else if(isleftchild)else

} else if (null == current.right)else if(isleftchild)else

} // 2.3被刪除節點有兩個子節點

elseelse if(isleftchild)else

succeednode.left = current.left;

} return true; }

// 獲取被刪除節點的後繼節點(專為被刪除節點有兩個子節點使用)

private node getsucceednode(node delnode)

if(succeed != delnode.right)

return succeed; }

//前序遍歷

public string perorder(node node)

return sb.tostring();

} //中序遍歷

public string inorder(node node)

return sb.tostring();

} //後序遍歷

public string postorder(node node)

return sb.tostring(); }

//節點類

class node

} public node getroot()

public void setroot(node root)

}

JAVA實現二叉樹

一 分析 乙個二叉樹節點有三個部分,乙個是指向左子樹的部分,乙個是指向右子樹的部分,另外乙個是資料部分。可以把這個節點抽象成乙個節點物件,給物件有兩個節點物件屬性和乙個資料屬性。如下圖 乙個二叉樹有只有乙個根節點,其餘的都是根節點的直接或間接子節點。所以可以把二叉樹抽象成乙個物件,該物件有乙個節點型...

二叉樹 Java實現

package struct inte ce tree 工廠類 class factory1 public static tree gettreeinstance class binarytreeimpl implements tree public node node leftchild,node...

Java實現二叉樹

在電腦科學中,二叉樹是每個結點最多有兩個子樹的樹結構。通常子樹被稱作 左子樹 left subtree 和 右子樹 right subtree 二叉樹常被用於實現二叉查詢樹和二叉堆。一棵深度為k,且有2 k 1個節點的二叉樹,稱為滿二叉樹。這種樹的特點是每一層上的節點數都是最大節點數。而在一棵二叉樹...