java创建bst树_创建二叉树(但不是BST)

在这里,我正在制作一个对BFS有益的 Weight-based Binary Tree ,因为它保持了树的 balancer .

我会在_2706105中实现它:

class BT_Node

{

public int value;

public int depth;

public long weight;

public BT_Node left, right;

public BT_Node (int value, int depth)

{

this.depth = depth;

this.value = value;

this.weight = 0;

this.left = this.right = null;

}

}

class BT

{

private BT_Node root;

public long size ()

{

return (root!=null ? root.weight : 0);

}

public long size (BT_Node node)

{

return (node!=null ? node.weight : 0);

}

public void insert (int value)

{

int depth = 0;

BT_Node parent = root;

if (root == null)

{

root = new BT_Node (value, 0);

}

else

{

root.weight++;

while (parent.left!=null && parent.right!=null)

{

if (parent.left.weight <= parent.right.weight)

parent=parent.left;

else

parent=parent.right;

parent.weight++;

}

if (parent.left == null)

parent.left = new BT_Node (value, parent.depth+1);

else

parent.right = new BT_Node (value, parent.depth+1);

}

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值