chapter 10 efficient binary search trees -...

34
1 C-C Tsai P.1 Chapter 10 Efficient Binary Search Trees Optimal Binary Search Trees AVL Trees Red-Black Trees Splay Trees C-C Tsai P.2 A binary search tree (BST) is a binary tree, that may be empty or satisfies the following properties : Every element has a unique key. The keys in a nonempty left (right) sub-tree must be smaller (larger) than the key in the root of the sub-tree. The left and right sub-trees are also binary search trees. Example: Two binary search trees Optimal Binary Search Trees 29 15 21 13 36 90 26 15 48 8 Internal node External node

Upload: others

Post on 03-Nov-2019

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Chapter 10 Efficient Binary Search Trees - 南華大學chun/DS(II)-Ch10-EfficientBinarySearchTrees.pdf · Chapter 10 Efficient Binary Search Trees Optimal Binary Search Trees AVL

1

C-C Tsai P.1

Chapter 10Efficient Binary Search Trees

Optimal Binary Search TreesAVL TreesRed-Black TreesSplay Trees

C-C Tsai P.2

A binary search tree (BST) is a binary tree, that may be empty or satisfies the following properties :

Every element has a unique key.The keys in a nonempty left (right) sub-tree must be smaller (larger) than the key in the root of the sub-tree.The left and right sub-trees are also binary search trees.

Example: Two binary search trees

Optimal Binary Search Trees

29 15

21 1336 90

2615 48 8

Internal node

External node

Page 2: Chapter 10 Efficient Binary Search Trees - 南華大學chun/DS(II)-Ch10-EfficientBinarySearchTrees.pdf · Chapter 10 Efficient Binary Search Trees Optimal Binary Search Trees AVL

2

C-C Tsai P.3

Operations in Binary Search Trees

Binary Search Trees (BST)Searching O(h), h is the height of BSTInsertion O(h)Deletion O(h)Can be done quickly by both key value and rank

C-C Tsai P.4

Two Algorithms of Searching a BSTelement * Recursive_search (tree_pointer root, int key){/* return a pointer to the node that contains key. If there is no such

node, return NULL */if (!root) return NULL;if (key == root->data) return root;if (key < root->data) return Recursive_search(root->leftChild,key);return Recursive_search(root->rightChild,key);

}

element * Iterative_search (tree_pointer tree, int key){ while (tree)

{ if (key == tree->data) return tree;if (key < tree->data) tree = tree->leftChild;else tree = tree->rightChild;

}return NULL;

}O(h), h is the height of BST.

Page 3: Chapter 10 Efficient Binary Search Trees - 南華大學chun/DS(II)-Ch10-EfficientBinarySearchTrees.pdf · Chapter 10 Efficient Binary Search Trees Optimal Binary Search Trees AVL

3

C-C Tsai P.5

Inserting into a BSTStep 1: Check if the inserting key is different from those of existing elementsStep 2: Run insert_node function

C-C Tsai P.6

Algorithm of Inserting into a BST

void insert_node (treePointer *node, int num) { treePointer ptr, temp = modifiedSearch(*node, num);

if (temp || !(*node)){ MALLOC(ptr,sizeof(*ptr));

ptr->data = num;ptr->leftChild = ptr->rightChild = NULL;if (*node)

if (num<temp->data) temp->left_child=ptr;else temp->right_child = ptr;

else *node = ptr;}

}

Page 4: Chapter 10 Efficient Binary Search Trees - 南華大學chun/DS(II)-Ch10-EfficientBinarySearchTrees.pdf · Chapter 10 Efficient Binary Search Trees Optimal Binary Search Trees AVL

4

C-C Tsai P.7

Deletion from a BSTDelete a non-leaf node with two children

Replace the largest element in its left sub-treeOr Replace the smallest element in its right sub-treeRecursively to the leaf O(h)

Delete 60

C-C Tsai P.8

Height of a BSTThe Height of the binary search tree is O(log2n), on the average. If you insert in a sorted order using the insertion algorithm, you’ll obtain a degenerate BST.

Best case O(h) = O(log n)Worst case (skewed) O(h) = O(n)

Page 5: Chapter 10 Efficient Binary Search Trees - 南華大學chun/DS(II)-Ch10-EfficientBinarySearchTrees.pdf · Chapter 10 Efficient Binary Search Trees Optimal Binary Search Trees AVL

5

C-C Tsai P.9

Balanced Binary Search TreesThere are binary search trees that guarantees balance, such as AVL Trees, 2-3 Trees, and Red-Black Trees.

A Balanced Search Tree has a worst case height of O(log2n)

Balance factor of a node: (height of left subtree) – (height of right subtree)= -1, 0, or 1.

C-C Tsai P.10

Balanced BSTExample 1: Rotate 20

Example 2:Nodes v and w decrease in heightNodes y and z increase in heightNode x remains at same height

y

v

w

x

z

w

v y

x z

Page 6: Chapter 10 Efficient Binary Search Trees - 南華大學chun/DS(II)-Ch10-EfficientBinarySearchTrees.pdf · Chapter 10 Efficient Binary Search Trees Optimal Binary Search Trees AVL

6

C-C Tsai P.11

AVL (Adel’son-Vel’skii and Landis) trees are balanced.Height-Balanced Property: An AVL Tree is a binary search tree such that for every internal node v of T, the heights of the children of v can differ by at most 1. That is, each node has a balance factor of -1, 0, or 1.

AVL Trees

88

44

17 78

32 50

48 62

2

4

1

1

2

3

1

1

C-C Tsai P.12

The height of an AVL tree storing n keys is O(log n).Balance is maintained by the insertion and deletion algorithms. Both take O(log n) time.

For example, if an insertion causes un-balance, then some rotation is performed.

Height of an AVL Tree

Left rotation

Page 7: Chapter 10 Efficient Binary Search Trees - 南華大學chun/DS(II)-Ch10-EfficientBinarySearchTrees.pdf · Chapter 10 Efficient Binary Search Trees Optimal Binary Search Trees AVL

7

C-C Tsai P.13

Insertion in an AVL TreeInsertion is as in a binary search treeAlways done by expanding an external node.Example: insertItem(54)

44

17 78

32 50 88

48 62

54

44

17 78

32 50 88

48 62

before insertion after insertion

1

1

11

4

1

3

2

2

1

2

1

4

21

3

5

unbalanced

Unbalanced, 4-2=2 >1

C-C Tsai P.14

Insertion Example (cont’d)

88

44

17 78

32 50

48 62

2

5

1

1

3

4

2

1

54

1

T0T2

T3

x

y

z

2

3

4

5

67

1

88

44

17

7832 50

48

622

4

1

1

2 2

3

154

1

T0 T1

T2

T3

x

y z

Unbalanced

Balanced1

23

4

5

6

7

T1

Page 8: Chapter 10 Efficient Binary Search Trees - 南華大學chun/DS(II)-Ch10-EfficientBinarySearchTrees.pdf · Chapter 10 Efficient Binary Search Trees Optimal Binary Search Trees AVL

8

C-C Tsai P.15

Trinode Restructuringlet (a,b,c) be an inorder listing of x, y, zperform the rotations needed to make b the topmost node of the three

b=y

a=z

c=x

T0

T1

T2 T3

b=y

a=z c=x

T0 T1 T2 T3

c=y

b=x

a=z

T0

T1 T2

T3b=x

c=ya=z

T0 T1 T2 T3

case 1: single rotation(a left rotation about a)

case 2: double rotation(a right rotation about c, then a left rotation about a)

(other two cases are symmetrical)

C-C Tsai P.16

Restructuring of Single Rotations

T0T1

T2

T3

c = xb = y

a = z

T0 T1 T2

T3

c = xb = y

a = zsingle rotation

T3T2

T1

T0

a = xb = y

c = z

T0T1T2

T3

a = xb = y

c = zsingle rotation

Page 9: Chapter 10 Efficient Binary Search Trees - 南華大學chun/DS(II)-Ch10-EfficientBinarySearchTrees.pdf · Chapter 10 Efficient Binary Search Trees Optimal Binary Search Trees AVL

9

C-C Tsai P.17

Restructuring of Double Rotations

double rotationa = z

b = xc = y

T0T2

T1

T3 T0

T2T3T1

a = zb = x

c = y

double rotationc = z

b = xa = y

T0T2

T1

T3 T0

T2T3 T1

c = zb = x

a = y

C-C Tsai P.18

Removal in an AVL TreeRemoval begins as in a binary search tree, which means the node removed will become an empty external node. Its parent, w, may cause an imbalance.Example: removeItem(32)

44

17

7832 50

8848

62

54

44

17

7850

8848

62

54

before deletion of 32 after deletion

32 31 unbalanced

Page 10: Chapter 10 Efficient Binary Search Trees - 南華大學chun/DS(II)-Ch10-EfficientBinarySearchTrees.pdf · Chapter 10 Efficient Binary Search Trees Optimal Binary Search Trees AVL

10

C-C Tsai P.19

Rebalancing after a RemovalLet z be the first unbalanced node encountered while traveling up the tree from w. Also, let y be the child of z with the larger height, and let x be the child of y with the larger height.We perform restructure(x) to restore balance at z.As this restructuring may upset the balance of another node higher in the tree, we must continue checking for balance until the root of T is reached

44

17

7850

8848

62

54

44

17

78

50 88

48

62

54

C-C Tsai P.20

Comparing Some Structures

Page 11: Chapter 10 Efficient Binary Search Trees - 南華大學chun/DS(II)-Ch10-EfficientBinarySearchTrees.pdf · Chapter 10 Efficient Binary Search Trees Optimal Binary Search Trees AVL

11

C-C Tsai P.21

A red-black tree can also be defined as a binary search tree that satisfies the following properties:

Root Property: the root is blackExternal Property: every leaf is blackInternal Property: the children of a red node are blackDepth Property: all the leaves have the same black depth

9

154

62 12

7

21

Red-Black Trees

C-C Tsai P.22

Height of a Red-Black TreeTheorem: A red-black tree storing n items has height O(log n)

Proof: The height of a red-black tree is at most twice the height of its associated (2,4) tree, which is O(log n)

The search algorithm for a binary search tree is the same as that for a binary search treeBy the above theorem, searching in a red-black tree takes O(log n) time

Page 12: Chapter 10 Efficient Binary Search Trees - 南華大學chun/DS(II)-Ch10-EfficientBinarySearchTrees.pdf · Chapter 10 Efficient Binary Search Trees Optimal Binary Search Trees AVL

12

C-C Tsai P.23

Insertion in Red-Black TreeTo perform operation of inserting am item, we execute the insertion algorithm for binary search trees and color red the newly inserted node z unless it is the root

We preserve the root, external, and depth propertiesIf the parent v of z is black, we also preserve the internal property and we are done Else (v is red ) we have a double red (i.e., a violation of the internal property), which requires a reorganization of the tree

Example: insert(4) causes a double red:

6

3 8

6

3 8

4z

v v

z

C-C Tsai P.24

Remedying a Double RedConsider a double red with child z and parent v, and let w be the sibling of v

4

6

7zvw

2

Case 1: w is blackThe double red is an incorrect replacement of a 4-nodeRestructuring: we change the 4-node replacement

Case 2: w is redThe double red corresponds to an overflowRecoloring: we perform the equivalent of a split

4

6

7zv

2w

Page 13: Chapter 10 Efficient Binary Search Trees - 南華大學chun/DS(II)-Ch10-EfficientBinarySearchTrees.pdf · Chapter 10 Efficient Binary Search Trees Optimal Binary Search Trees AVL

13

C-C Tsai P.25

RestructuringA restructuring remedies a child-parent double red when the parent red node has a black siblingIt is equivalent to restoring the correct replacement of a 4-nodeThe internal property is restored and the other properties are preserved

4

6

7z

vw2 4

6

7

z

v

w2

C-C Tsai P.26

Restructuring (cont.)There are four restructuring configurations depending on whether the double red nodes are left or right children

2

4

66

2

4

6

4

22

6

4

2 6

4

Page 14: Chapter 10 Efficient Binary Search Trees - 南華大學chun/DS(II)-Ch10-EfficientBinarySearchTrees.pdf · Chapter 10 Efficient Binary Search Trees Optimal Binary Search Trees AVL

14

C-C Tsai P.27

RecoloringA recoloring remedies a child-parent double red when the parent red node has a red siblingThe parent v and its sibling w become black and the grandparent u becomes red, unless it is the rootIt is equivalent to performing a split on a 5-nodeThe double red violation may propagate to the grandparent u

4

6

7zv

2w 4

6

7zv

2w

C-C Tsai P.28

Analysis of Insertion

Recall that a red-black tree has O(log n) height

Step 1: takes O(log n) time because we visit O(log n) nodes

Step 2: takes O(1) time

Step 3: takes O(log n) time because we perform

O(log n) recolorings, each taking O(1) time, andat most one restructuring taking O(1) time

Thus, an insertion in a red-black tree takes O(log n) time

Algorithm insertItem(k, o)

1. We search for key k to locate the insertion node z

2. We add the new item (k, o) at node z and color z red

3. while doubleRed(z)if isBlack(sibling(parent(z)))

z ← restructure(z)return

else { sibling(parent(z) is red }z ← recolor(z)

Page 15: Chapter 10 Efficient Binary Search Trees - 南華大學chun/DS(II)-Ch10-EfficientBinarySearchTrees.pdf · Chapter 10 Efficient Binary Search Trees Optimal Binary Search Trees AVL

15

C-C Tsai P.29

Insertion 35 into a RB TreeRecolor case (parent has sibling)

If parent has no sibling: swap parent-grandparent colors, and then rotate right around grandparent

C-C Tsai P.30

Insertion 35 into a RB TreeRotation doesn’t work in right-left case

Page 16: Chapter 10 Efficient Binary Search Trees - 南華大學chun/DS(II)-Ch10-EfficientBinarySearchTrees.pdf · Chapter 10 Efficient Binary Search Trees Optimal Binary Search Trees AVL

16

C-C Tsai P.31

Insertion 4 into a RB Tree

C-C Tsai P.32

Insertion 4 into a RB Tree

Page 17: Chapter 10 Efficient Binary Search Trees - 南華大學chun/DS(II)-Ch10-EfficientBinarySearchTrees.pdf · Chapter 10 Efficient Binary Search Trees Optimal Binary Search Trees AVL

17

C-C Tsai P.33

Insertion 4 into a RB Tree

7

C-C Tsai P.34

Deletion in Red-Black TreeTo perform operation remove(k), we first execute the deletion algorithm for binary search treesLet v be the internal node removed, w the external node removed, and r the sibling of w

If either v of r was red, we color r black and we are doneElse (v and r were both black) we color r double black, which is a violation of the internal property requiring a reorganization of the tree

Example: remove(8) causes a double black:6

3 8

4

v

r w

6

3

4

r

Page 18: Chapter 10 Efficient Binary Search Trees - 南華大學chun/DS(II)-Ch10-EfficientBinarySearchTrees.pdf · Chapter 10 Efficient Binary Search Trees Optimal Binary Search Trees AVL

18

C-C Tsai P.35

Remedying a Double BlackThe algorithm for remedying a double black node w with sibling y considers three cases

Case 1: y is black and has a red childWe perform a restructuring, equivalent to a transfer, and we are done

6

3

4

wy4

3 6

w

y

C-C Tsai P.36

Remedying a Double Black (cond’t)

Case 2: y is black and its children are both blackWe perform a recoloring, equivalent to a fusion, which may propagate up the double black violation

6

3

4

wy6

3

4

wy

Page 19: Chapter 10 Efficient Binary Search Trees - 南華大學chun/DS(II)-Ch10-EfficientBinarySearchTrees.pdf · Chapter 10 Efficient Binary Search Trees Optimal Binary Search Trees AVL

19

C-C Tsai P.37

Case 3: y is redWe perform an adjustment, equivalent to choosing a different representation of a 3-node, after which either Case 1 or Case 2 applies

6

3

4

wy6

3

4

wy

Remedying a Double Black (cond’t)

Deletion in a red-black tree takes O(log n) time

C-C Tsai

Splay TreesBinary search trees.Search, insert, delete, and split have amortized complexity O(log n) & actual complexity O(n).Actual and amortized complexity of join is O(1).Priority queue and double-ended priority queue versions outperform heaps, etc. over a sequence of operations.Two varieties.

Bottom up.Top down.

Page 20: Chapter 10 Efficient Binary Search Trees - 南華大學chun/DS(II)-Ch10-EfficientBinarySearchTrees.pdf · Chapter 10 Efficient Binary Search Trees Optimal Binary Search Trees AVL

20

C-C Tsai P.39

Bottom-Up Splay TreesSearch, insert, delete, and join are done as in an unbalanced binary search tree.Search, insert, and delete are followed by a splay operation that begins at a splay node. When the splay operation completes, the splay node has become the tree root.Join requires no splay (or, a null splay is done).For the split operation, the splay is done in the middle (rather than end) of the operation.

C-C Tsai P.40

Splay Node – search(k)If there is a pair whose key is k, the node containing this pair is the splay node.Otherwise, the parent of the external node where the search terminates is the splay node.

20

10

6

2 8

15

40

30

25

Page 21: Chapter 10 Efficient Binary Search Trees - 南華大學chun/DS(II)-Ch10-EfficientBinarySearchTrees.pdf · Chapter 10 Efficient Binary Search Trees Optimal Binary Search Trees AVL

21

C-C Tsai P.41

Splay Node – insert(newPair)If there is already a pair whose key is newPair.key, the node containing this pair is the splay node.Otherwise, the newly inserted node is the splay node.

20

10

6

2 8

15

40

30

25

C-C Tsai P.42

Splay Node – delete(k)If there is a pair whose key is k, the parent of the node that is physically deleted from the tree is the splay node.Otherwise, the parent of the external node where the search terminates is the splay node.

20

10

6

2 8

15

40

30

25

Page 22: Chapter 10 Efficient Binary Search Trees - 南華大學chun/DS(II)-Ch10-EfficientBinarySearchTrees.pdf · Chapter 10 Efficient Binary Search Trees Optimal Binary Search Trees AVL

22

C-C Tsai P.43

Splay Node – split(k)Use the unbalanced binary search tree insert algorithm to insert a new pair whose key is k. The splay node is as for the splay tree insert algorithm.Following the splay, the left subtree of the root is S, and the right subtree is B.m is set to null if it is the newly inserted pair.

S

m

B

C-C Tsai P.44

SplayLet q be the splay node and q is moved up the tree using a series of splay steps. In a splay step, the node q moves up the tree by 0, 1, or 2 levels. Every splay step, except possibly the last one, moves q two levels up.

Splay step:If q = null or q is the root, do nothing (splay is over).If q is at level 2, do a one-level move and terminate the splay operation. q right child of p is symmetric.

p

q

a b

c

b c

a

q

pRR rotation

Page 23: Chapter 10 Efficient Binary Search Trees - 南華大學chun/DS(II)-Ch10-EfficientBinarySearchTrees.pdf · Chapter 10 Efficient Binary Search Trees Optimal Binary Search Trees AVL

23

C-C Tsai P.45

Splay StepIf q is at a level > 2, do a two-level move and continue the splay operation.

• q right child of right child of gp is symmetric.

p

q

a b

c

gp

d

c d

b

p

gp

q

a

RR rotation

C-C Tsai P.46

2-Level Move (case 2)

• q left child of right child of gp is symmetric.

p

q

b c

a

gp

da cb

gpp

q

d

RR rotation

Page 24: Chapter 10 Efficient Binary Search Trees - 南華大學chun/DS(II)-Ch10-EfficientBinarySearchTrees.pdf · Chapter 10 Efficient Binary Search Trees Optimal Binary Search Trees AVL

24

C-C Tsai P.47

Per Operation Actual ComplexityStart with an empty splay tree and insert pairs with keys 1, 2, 3, …, in this order.

1 1

2 1

2

Start with an empty splay tree and insert pairs with keys 1, 2, 3, …, in this order.

1

2

31

2

3

1

2

3

4

Worst-case height = n.Actual complexity of search, insert, delete, and split is O(n).

C-C Tsai P.48

Top-Down Splay TreesOn the way down the tree, split the tree into the binary search trees S (small elements)and B (big elements).

Similar to split operation in an unbalanced binary search tree.However, a rotation is done whenever an LL or RR move is made.Move down 2 levels at a time, except (possibly) in the end when a one level move is made.

When the splay node is reached, S, B, and the subtree rooted at the splay node are combined into a single binary search tree.

Page 25: Chapter 10 Efficient Binary Search Trees - 南華大學chun/DS(II)-Ch10-EfficientBinarySearchTrees.pdf · Chapter 10 Efficient Binary Search Trees Optimal Binary Search Trees AVL

25

C-C Tsai P.49

Split A Binary Search TreeB

e

d

b

A

a B

c

C

D

f

m

g

E

S

m is the splay node

C-C Tsai P.50

Split A Binary Search Tree

A

a

d

b

B

c

C

D

f

m

g

E

e

S B

Page 26: Chapter 10 Efficient Binary Search Trees - 南華大學chun/DS(II)-Ch10-EfficientBinarySearchTrees.pdf · Chapter 10 Efficient Binary Search Trees Optimal Binary Search Trees AVL

26

C-C Tsai P.51

Split A Binary Search Tree

b

A

a

B

d

c

C

D

f

m

g

E

e

S B

C-C Tsai P.52

Split A Binary Search Tree

b

A

a

B

c

C

d

D

f

m

g

E

e

S B

Page 27: Chapter 10 Efficient Binary Search Trees - 南華大學chun/DS(II)-Ch10-EfficientBinarySearchTrees.pdf · Chapter 10 Efficient Binary Search Trees Optimal Binary Search Trees AVL

27

C-C Tsai P.53

Split A Binary Search Tree

b

A

a

B

c

C

d

D

f

m

g

E

e

S B

C-C Tsai P.54

Split A Binary Search Tree

b

A

a

B

c

C

d

D

f

m

g

E

e

S B

Page 28: Chapter 10 Efficient Binary Search Trees - 南華大學chun/DS(II)-Ch10-EfficientBinarySearchTrees.pdf · Chapter 10 Efficient Binary Search Trees Optimal Binary Search Trees AVL

28

C-C Tsai P.55

Split A Binary Search Tree

b

A

a

B

c

C

d

D

fm

g

E

e

S B

C-C Tsai P.56

Split A Binary Search Tree

b

A

a

B

c

C

d

D

f

g

E

e

m

Page 29: Chapter 10 Efficient Binary Search Trees - 南華大學chun/DS(II)-Ch10-EfficientBinarySearchTrees.pdf · Chapter 10 Efficient Binary Search Trees Optimal Binary Search Trees AVL

29

C-C Tsai P.57

Two-Level Moves

e

d

b

A

a B

c

C

D

f

m

g

E

Let m be the splay node.• RL move from A to C.• RR move from C to E.• L move from E to m.

C-C Tsai P.58

RL MoveB

e

d

b

A

a B

c

C

D

f

m

g

E

S B

Page 30: Chapter 10 Efficient Binary Search Trees - 南華大學chun/DS(II)-Ch10-EfficientBinarySearchTrees.pdf · Chapter 10 Efficient Binary Search Trees Optimal Binary Search Trees AVL

30

C-C Tsai P.59

RL Move

b

A

a

B

d

c

C

D

f

m

g

E

e

S B

C-C Tsai P.60

RR Move

b

A

a

B

d

c

C

D

f

m

g

E

e

S B

Page 31: Chapter 10 Efficient Binary Search Trees - 南華大學chun/DS(II)-Ch10-EfficientBinarySearchTrees.pdf · Chapter 10 Efficient Binary Search Trees Optimal Binary Search Trees AVL

31

C-C Tsai P.61

RR Move

b

A

a

B

dc

C

D

f

m

g

E

e

S B

C-C Tsai P.62

L Move

b

A

a

B

dc

C

D

f

m

g

E

e

S B

Page 32: Chapter 10 Efficient Binary Search Trees - 南華大學chun/DS(II)-Ch10-EfficientBinarySearchTrees.pdf · Chapter 10 Efficient Binary Search Trees Optimal Binary Search Trees AVL

32

C-C Tsai P.63

L Move

b

A

a

B

dc

C

D

f

m

g

E

e

S B

C-C Tsai P.64

Wrap Up

b

A

a

B

dc

C

D

f

m

g

E

e

S B

Page 33: Chapter 10 Efficient Binary Search Trees - 南華大學chun/DS(II)-Ch10-EfficientBinarySearchTrees.pdf · Chapter 10 Efficient Binary Search Trees Optimal Binary Search Trees AVL

33

C-C Tsai P.65

Wrap Up

b

A

a

B

dc

C

D

f

m

g

E

e

S B

C-C Tsai P.66

Wrap Up

b

A

a

B

dc

C

D

f

m

g

E

e

Page 34: Chapter 10 Efficient Binary Search Trees - 南華大學chun/DS(II)-Ch10-EfficientBinarySearchTrees.pdf · Chapter 10 Efficient Binary Search Trees Optimal Binary Search Trees AVL

34

C-C Tsai P.67

Bottom Up vs Top DownTop down splay trees are faster than bottom up splay trees.