在java中实现二叉树

时间:2016-01-25 18:48:45

标签: data-structures

我是datastructure的新手。我正在尝试使用Linked List实现二叉树。

我需要做一些澄清才能实现它。

i)在树中插入一个新值,我们是否应该在实现它时进行回溯和Tree遍历。

ii)请建议我搜索和删除值的案例。

iii)请告诉我实施所有类型树木的正确材料。

1 个答案:

答案 0 :(得分:1)

您的关联列表应显示如下内容:a->b->c->d->e->f-> ... 你的树最后会看起来像那张照片。 其中a是左子b和右子c的根。 b已离开孩子d和右孩子e,c只有左孩子f。

i)您可以将新值放在链接列表的末尾。无需前往树

ii)我假设您的树不是已排序的二叉树。因此,要搜索值k,您需要浏览整个链接列表。这将花费O(n)作为你的时间。

要删除变量,您可以删除链接列表中的节点,一切都将被移动。所以例如在上图中如果删除d,你可以在图片中看到f将替换d的结果。

iii)你能指出你所有类型树的意思吗?

希望这有帮助。

Deleting a node