我目前正在实施基于ArrayList
的{{1}}。我试图弄清楚如何做到这一点,但我遇到了一堵墙。 binary tree in Java
我应该实现一堆methods
,但每次尝试时,它似乎都不起作用。
我们class
标识Position objects
。在这个Position<E>
中,我们class
array list
和private
,root variable
只有accessible
,所以{class
1}} size()
,method
方法很简单。但是,在实现以下方法时遇到了一些麻烦:isEmpty()
,hasLeft(Position<E>)
hasRight(Position<E>)
left(Position<E>), right(Position<E>),
等等......左右方法简单返回addRoot(E e)
和left child
。我对right child of a node
很熟悉,但在使用ArrayList
时却不熟悉。
我将如何实施这些方法?我被困住了,我很感激我能得到的任何帮助。
谢谢!
答案 0 :(得分:2)
当您将二叉树写为数组时,您正在构建通常称为堆的数据。堆很好地记录在案,本文将为您提供有关如何实现它们的大量详细信息:
答案 1 :(得分:0)
您可以在连续数组的顶部构建二叉树。基本上,对于阵列的第i个位置上的元素,具有基于0的索引:
left(i) : 2 * i + 1
right(i) : 2 * i + 2