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個節點的二叉樹,稱為滿二叉樹。這種樹的特點是每一層上的節點數都是最大節點數。而在一棵二叉樹...