建立 遍歷二叉排序樹以及刪除節點

2021-10-02 01:58:23 字數 1824 閱讀 1075

public class cbinarysorttree ;

binarysorttree binarysorttree = new binarysorttree();

for(int i:arr)

binarysorttree.infixorder();

binarysorttree.delnode(7);

system.out.println("刪除後");

binarysorttree.infixorder();

}}

class binarysorttree

else if(root.left == null && root.right==null && root.value == value)

else

//然後獲取到要刪除節點的父節點

node parent = searchparent(value);

if(target.left!=null && target.right!=null) else if(target.left == null && target.right==null)else if(parent.right != null && parent.right.value == value)

}else if((target.left !=null && target.right==null)) else if (parent.right != null && parent.right.value == value)

}else

}else if((target.left==null && target.right!=null)) else if (parent.right != null && parent.right.value == value)

}else }}

}//查詢要刪除的節點

public node search(int value)else

}//查詢要刪除節點的父節點

public node searchparent(int value)else

}public void add(node node)else

}public void infixorder()else

}}

class node 

public node searchmin()else if(this.left !=null)else

}//查詢要刪除的節點

public node search(int value)else if(value < this.value)

return this.left.search(value);

}else

return this.right.search(value);}}

//查詢要刪除節點的父節點

public node searchparent(int value)else else }}

//新增節點的方法

public void add(node node)

//判斷傳入節點的值和當前子樹的根節點的值比較

if (node.value < this.value) else

} else else }}

//中序遍歷

public void infixorder()

system.out.println(this.value);

if(this.right!=null)

}@override

public string tostring() ';

}}

二叉排序樹刪除節點

description 二叉排序樹的節點 auther eleven create 2020 04 09 20 43 public class node 新增方法 public void add node node if this value node.value else else else 中序...

二叉排序樹新增刪除節點

二叉排序樹 可以很快的檢索到具體的資料。什麼是二叉排序樹 讓左子節點的值小於父節點,右子節點的值大於父節點,這樣的二叉樹稱為二叉排序樹。往二叉排序樹中新增節點 首先要看新增節點的父節點是否為空,在判斷新增節點的值和父節點的值的大小關係,如果小,就放在左節點,如果大就放在右節點 新增節點 public...

二叉排序樹的建立,刪除

最近在複習資料結構,對於二叉排序樹,看了一些書,參考別人的思想寫出了這個 希望看到的人給點修改建議 如下 include include typedef struct bitree bitree typedef struct bitree ibitree ibitree q int searchtr...