|
net.datastructures - version 4.0 | |||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectnet.datastructures.ArrayListCompleteBinaryTree<E>
public class ArrayListCompleteBinaryTree<E>
A speedy implementation of the CompleteBinaryTree interface using
a vector. Within the vector, there is a null element at rank 0,
the root of the tree at rank 1, and the rest of the tree is
contained as follows. If node n
has rank i,
then the left child of n
will have rank 2*i,
and the right child of n
will have rank 2*i +
1. Traversing the contents of the vector in order of increasing
rank yields a level-order traversal
BinaryTree
,
CompleteBinaryTree
Nested Class Summary | |
---|---|
protected static class |
ArrayListCompleteBinaryTree.BTPos<E>
Nested class for a index list-based complete binary tree node. |
Field Summary | |
---|---|
protected ArrayList<ArrayListCompleteBinaryTree.BTPos<E>> |
T
|
Constructor Summary | |
---|---|
ArrayListCompleteBinaryTree()
default constructor |
Method Summary | |
---|---|
Position<E> |
add(E e)
Adds an element just after the last node (in a level numbering). |
protected ArrayListCompleteBinaryTree.BTPos<E> |
checkPosition(Position<E> v)
Determines whether the given position is a valid node. |
Iterable<Position<E>> |
children(Position<E> v)
Returns an iterable collection of the children of v. |
boolean |
hasLeft(Position<E> v)
Returns whether v has a left child. |
boolean |
hasRight(Position<E> v)
Returns whether v has a right child. |
boolean |
isEmpty()
Returns whether the tree is empty. |
boolean |
isExternal(Position<E> v)
Returns whether v is an external node. |
boolean |
isInternal(Position<E> v)
Returns whether v is an internal node. |
boolean |
isRoot(Position<E> v)
Returns whether v is the root node. |
Iterator<E> |
iterator()
Returns an iterator of the elements stored at all nodes in the tree. |
Position<E> |
left(Position<E> v)
Returns the left child of v. |
Position<E> |
parent(Position<E> v)
Returns the parent of v. |
Iterable<Position<E>> |
positions()
Returns an iterable collection of all the nodes in the tree. |
E |
remove()
Removes and returns the element at the last node. |
E |
replace(Position<E> v,
E o)
Replaces the element at v. |
Position<E> |
right(Position<E> v)
Returns the right child of v. |
Position<E> |
root()
Returns the root of the tree. |
Position<E> |
sibling(Position<E> v)
Returns the sibling of v. |
int |
size()
Returns the number of (internal and external) nodes. |
void |
swapElements(Position<E> v,
Position<E> w)
Swaps the elements at two nodes. |
String |
toString()
Returns a String representing this complete binary tree. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Field Detail |
---|
protected ArrayList<ArrayListCompleteBinaryTree.BTPos<E>> T
Constructor Detail |
---|
public ArrayListCompleteBinaryTree()
Method Detail |
---|
public int size()
size
in interface Tree<E>
public boolean isEmpty()
isEmpty
in interface Tree<E>
public boolean isInternal(Position<E> v) throws InvalidPositionException
isInternal
in interface Tree<E>
InvalidPositionException
public boolean isExternal(Position<E> v) throws InvalidPositionException
isExternal
in interface Tree<E>
InvalidPositionException
public boolean isRoot(Position<E> v) throws InvalidPositionException
isRoot
in interface Tree<E>
InvalidPositionException
public boolean hasLeft(Position<E> v) throws InvalidPositionException
hasLeft
in interface BinaryTree<E>
InvalidPositionException
public boolean hasRight(Position<E> v) throws InvalidPositionException
hasRight
in interface BinaryTree<E>
InvalidPositionException
public Position<E> root() throws EmptyTreeException
root
in interface Tree<E>
EmptyTreeException
public Position<E> left(Position<E> v) throws InvalidPositionException, BoundaryViolationException
left
in interface BinaryTree<E>
InvalidPositionException
BoundaryViolationException
public Position<E> right(Position<E> v) throws InvalidPositionException
right
in interface BinaryTree<E>
InvalidPositionException
public Position<E> parent(Position<E> v) throws InvalidPositionException, BoundaryViolationException
parent
in interface Tree<E>
InvalidPositionException
BoundaryViolationException
public Iterable<Position<E>> children(Position<E> v) throws InvalidPositionException
children
in interface Tree<E>
InvalidPositionException
public Iterable<Position<E>> positions()
positions
in interface Tree<E>
public E replace(Position<E> v, E o) throws InvalidPositionException
replace
in interface Tree<E>
InvalidPositionException
public Position<E> add(E e)
add
in interface CompleteBinaryTree<E>
public E remove() throws EmptyTreeException
remove
in interface CompleteBinaryTree<E>
EmptyTreeException
protected ArrayListCompleteBinaryTree.BTPos<E> checkPosition(Position<E> v) throws InvalidPositionException
InvalidPositionException
public Position<E> sibling(Position<E> v) throws InvalidPositionException, BoundaryViolationException
InvalidPositionException
BoundaryViolationException
public void swapElements(Position<E> v, Position<E> w) throws InvalidPositionException
InvalidPositionException
public Iterator<E> iterator()
iterator
in interface Tree<E>
public String toString()
toString
in class Object
|
net.datastructures - version 4.0 | |||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |