BinarySearchTreeAngka.java
public class BinarySearchTreeAngka {
NodeAngka root;
public BinarySearchTreeAngka(){
root = null;
}
public void insert (int key){
root = insertRec (root, key);
}
private NodeAngka insertRec(NodeAngka root, int key){
if(root == null){
root = new NodeAngka(key);
return root;
}
if (key<root.key){
root.left = insertRec(root.left, key);
}
else if (key>root.key){
root.right = insertRec(root.right, key);
}
return root;
}
public void PrintPreOrder(NodeAngka node){
if (node == null)
return ;
System.out.print(node.key+" ");
PrintPreOrder(node.left);
PrintPreOrder(node.right);
}
public void PrintInOrder(NodeAngka node){
if (node==null)
return;
PrintPreOrder(node.left);
System.out.print(node.key+" ");
PrintPreOrder(node.right);
}
public void PrintPostOrder(NodeAngka node){
if(node==null)
return;
PrintPreOrder(node.left);
PrintPreOrder(node.right);
System.out.print(node.key+" ");
}
public void PrintPreOrder(){
PrintPreOrder(root);
}
public void PrintInOrder(){
PrintInOrder(root);
}
public void PrintPostOrder(){
PrintPostOrder(root);
}
public void deleteKey(int key){
root = deleteRec(root,key);
}
public NodeAngka deleteRec(NodeAngka root, int key){
if(root == null ) return root;
if(key<root.key){
root.left = deleteRec(root.left, key);
}
else if(key>root.key){
root.right = deleteRec(root.right, key);
}
else {
if (root.left == null) {
return root.right;
} else if (root.right == null) {
return root.left;
}
root.key = minValue(root.right);
root.right = deleteRec(root.right, root.key);
}
return root;
}
int minValue(NodeAngka root){
int minv = root.key;
while (root.left != null)
{
minv = root.left.key;
root = root.left;
}
return minv;
}
}
NodeAngka root;
public BinarySearchTreeAngka(){
root = null;
}
public void insert (int key){
root = insertRec (root, key);
}
private NodeAngka insertRec(NodeAngka root, int key){
if(root == null){
root = new NodeAngka(key);
return root;
}
if (key<root.key){
root.left = insertRec(root.left, key);
}
else if (key>root.key){
root.right = insertRec(root.right, key);
}
return root;
}
public void PrintPreOrder(NodeAngka node){
if (node == null)
return ;
System.out.print(node.key+" ");
PrintPreOrder(node.left);
PrintPreOrder(node.right);
}
public void PrintInOrder(NodeAngka node){
if (node==null)
return;
PrintPreOrder(node.left);
System.out.print(node.key+" ");
PrintPreOrder(node.right);
}
public void PrintPostOrder(NodeAngka node){
if(node==null)
return;
PrintPreOrder(node.left);
PrintPreOrder(node.right);
System.out.print(node.key+" ");
}
public void PrintPreOrder(){
PrintPreOrder(root);
}
public void PrintInOrder(){
PrintInOrder(root);
}
public void PrintPostOrder(){
PrintPostOrder(root);
}
public void deleteKey(int key){
root = deleteRec(root,key);
}
public NodeAngka deleteRec(NodeAngka root, int key){
if(root == null ) return root;
if(key<root.key){
root.left = deleteRec(root.left, key);
}
else if(key>root.key){
root.right = deleteRec(root.right, key);
}
else {
if (root.left == null) {
return root.right;
} else if (root.right == null) {
return root.left;
}
root.key = minValue(root.right);
root.right = deleteRec(root.right, root.key);
}
return root;
}
int minValue(NodeAngka root){
int minv = root.key;
while (root.left != null)
{
minv = root.left.key;
root = root.left;
}
return minv;
}
}
Komentar
Posting Komentar