Java Reference
In-Depth Information
1
/**
2
* Construct the tree.
3
*/
4
public SplayTree( )
5
{
6
nullNode = new BinaryNode<AnyType>( null );
7
nullNode.left = nullNode.right = nullNode;
8
root = nullNode;
9
}
figure 22.14
The
SplayTree
class
constructor
1
// Used between different inserts
2
private BinaryNode<AnyType> newNode = null;
3
4
/**
5
* Insert into the tree.
6
* @param x the item to insert.
7
* @throws DuplicateItemException if x is already present.
8
*/
9
public void insert( AnyType x )
10
{
11
if( newNode == null )
12
newNode = new BinaryNode<AnyType>( null );
13
newNode.element = x;
14
15
if( root == nullNode )
16
{
17
newNode.left = newNode.right = nullNode;
18
root = newNode;
19
}
20
else
21
{
22
root = splay( x, root );
23
if( x.compareTo( root.element ) < 0 )
24
{
25
newNode.left = root.left;
26
newNode.right = root;
27
root.left = nullNode;
28
root = newNode;
29
}
30
else
31
if( x.compareTo( root.element ) > 0 )
32
{
33
newNode.right = root.right;
34
newNode.left = root;
35
root.right = nullNode;
36
root = newNode;
37
}
38
else
39
throw new DuplicateItemException( x.toString( ) );
40
}
41
newNode = null; // So next insert will call new
42
}
figure 22.15
The top-down
SplayTree
class
insertion routine
Search WWH ::
Custom Search