2012-10-16 30 views
2

我目前正在实施基于binary tree in JavaArrayList。我试图弄清楚如何做到这一点,但我正陷入困境。有一堆methodsclass我应该实施,但每次我尝试的东西,它似乎并没有工作。我们有Position objectsPosition<E>。在这个class我们有一个array listprivateroot variable,既accessible只有这样class,所以size()methodisEmpty()方法很简单。然而,我遇到了一些麻烦,当涉及到实施的方法,如:hasLeft(Position<E>),hasRight(Position<E>)left(Position<E>), right(Position<E>),addRoot(E e)等...左和右方法只是简单地返回left childright child of a node。我熟悉ArrayList,但在实施binary tree class时并非如此。基于ArrayList的二叉树 - Java

我将如何去实施这些方法?我卡住了,我会很感激我能得到的任何帮助。

谢谢!

+0

你可以显示你应该实现的'interface'吗? – Pao

+0

简单地说就是 public interface Position E element(); } – shootingrubber

回答

0

您可以在一个连续阵列的顶部建一个二叉树。基本上,对于阵列的第i个位置上的元素,具有基于0的索引:

left(i) : 2 * i + 1 
right(i) : 2 * i + 2