preview graph tree binary tree binary search tree binary search tree property binary search tree...

74
Preview Graph Tree Binary Tree Binary Search Tree Binary Search Tree Property Binary Search Tree functions In-order walk Pre-order walk Post-order walk Search Tree Insert a element to the Tree Delete a element form the Tree COSC 220 Computer Science II, Spr.2012 Dr. Sang-Eon Park 1

Upload: claribel-greer

Post on 04-Jan-2016

229 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Preview  Graph  Tree Binary Tree Binary Search Tree Binary Search Tree Property Binary Search Tree functions  In-order walk  Pre-order walk  Post-order

Preview Graph Tree

Binary Tree Binary Search Tree Binary Search Tree Property Binary Search Tree functions

In-order walk Pre-order walk Post-order walk Search Tree Insert a element to the Tree Delete a element form the Tree

COSC 220 Computer Science II, Spr.2012 Dr. Sang-Eon Park

1

Page 2: Preview  Graph  Tree Binary Tree Binary Search Tree Binary Search Tree Property Binary Search Tree functions  In-order walk  Pre-order walk  Post-order

Graph Directed graph (or digraph)

G = (V, E)V: Set of vertex (node)E: Set of edges (ordered vertex pair)

Undirected graphG = (V, E)V: Set of vertexE: Set of edges (unordered vertex

pair)COSC 220 Computer Science II, Spr.2012

Dr. Sang-Eon Park2

Page 3: Preview  Graph  Tree Binary Tree Binary Search Tree Binary Search Tree Property Binary Search Tree functions  In-order walk  Pre-order walk  Post-order

Graph

COSC 220 Computer Science II, Spr.2012 Dr. Sang-Eon Park

3

A

C

B

D

Digraph G = (V, E)

V = {A, B, C, D, E, F}

E = {(A, B), (C, A), (B, D), (B, C), (C, D), (D, C), (B, B) (F, E)}

E

F

Page 4: Preview  Graph  Tree Binary Tree Binary Search Tree Binary Search Tree Property Binary Search Tree functions  In-order walk  Pre-order walk  Post-order

Graph

COSC 220 Computer Science II, Spr.2012 Dr. Sang-Eon Park

4

A

C

B

D

E

F

Undirected Graph G = (V, E)

V = {A, B, C, D, E, F}

E = {(A, B), (A, C), (B, D), (B, C), (E, F)}

Page 5: Preview  Graph  Tree Binary Tree Binary Search Tree Binary Search Tree Property Binary Search Tree functions  In-order walk  Pre-order walk  Post-order

Tree A undirected graph is connected if every

pair of vertices is connected by a path. Free Tree – is a connected acyclic,

undirected graph. Forest – a acyclic but possibly

disconnected undirected graph Rooted tree – a free tree where one of

the vertices is distinguished from the other. The distinguished vertex is called root.

COSC 220 Computer Science II, Spr.2012 Dr. Sang-Eon Park

5

Page 6: Preview  Graph  Tree Binary Tree Binary Search Tree Binary Search Tree Property Binary Search Tree functions  In-order walk  Pre-order walk  Post-order

Tree

COSC 220 Computer Science II, Spr.2012 Dr. Sang-Eon Park

6

Free Tree Forest

Page 7: Preview  Graph  Tree Binary Tree Binary Search Tree Binary Search Tree Property Binary Search Tree functions  In-order walk  Pre-order walk  Post-order

Tree If the last edge on the path from

from the root R of a tree T to a node is (y ,x) then y is parent of x and x is child of y.

If two nodes have same parent, they are siblings

A node has no children is leaf. A non-leaf node is an internal

node The length of the path from the

root R to a node x is the depth of x in the tree.

The largest depth of any node in tree T is the height of tree T.

COSC 220 Computer Science II, Spr.2012 Dr. Sang-Eon Park

7

R

A C DB

GF

H

E

Page 8: Preview  Graph  Tree Binary Tree Binary Search Tree Binary Search Tree Property Binary Search Tree functions  In-order walk  Pre-order walk  Post-order

Binary Tree A binary tree is a tree data structure in

which each node has at most two children. Typically the child nodes are called left

child and right child. Binary trees are commonly used to

implement binary search trees and heaps.

COSC 220 Computer Science II, Spr.2012 Dr. Sang-Eon Park

8

Page 9: Preview  Graph  Tree Binary Tree Binary Search Tree Binary Search Tree Property Binary Search Tree functions  In-order walk  Pre-order walk  Post-order

Binary Tree

COSC 220 Computer Science II, Spr.2012 Dr. Sang-Eon Park

9

Balanced Binary Tree

Page 10: Preview  Graph  Tree Binary Tree Binary Search Tree Binary Search Tree Property Binary Search Tree functions  In-order walk  Pre-order walk  Post-order

Binary Tree

COSC 220 Computer Science II, Spr.2012 Dr. Sang-Eon Park

10

Unbalanced Binary Tree

Page 11: Preview  Graph  Tree Binary Tree Binary Search Tree Binary Search Tree Property Binary Search Tree functions  In-order walk  Pre-order walk  Post-order

Binary Search Tree Binary search tree – a binary tree with

binary-search-tree property. Binary-Search-Tree Property

Let x be a node in a binary search tree. If y is a node in the left subtree of x then

key(y) key(x). If y is a node in the right subtree of x,

then key(x) key(y).

COSC 220 Computer Science II, Spr.2012 Dr. Sang-Eon Park

11

Page 12: Preview  Graph  Tree Binary Tree Binary Search Tree Binary Search Tree Property Binary Search Tree functions  In-order walk  Pre-order walk  Post-order

Binary Search Tree

COSC 220 Computer Science II, Spr.2012 Dr. Sang-Eon Park

12

5

7

2 8

14

9

41

163

Page 13: Preview  Graph  Tree Binary Tree Binary Search Tree Binary Search Tree Property Binary Search Tree functions  In-order walk  Pre-order walk  Post-order

Binary Search Tree

COSC 220 Computer Science II, Spr.2012 Dr. Sang-Eon Park

13

2

1 3

7

9

8

Unbalanced Binary Tree

Page 14: Preview  Graph  Tree Binary Tree Binary Search Tree Binary Search Tree Property Binary Search Tree functions  In-order walk  Pre-order walk  Post-order

Operations on Binary Search Tree Binary Search Tree Operations

Inorder walk Preorder walk Postorder walk Search Tree Insert a element to the Tree Delete a element form the Tree

COSC 220 Computer Science II, Spr.2012 Dr. Sang-Eon Park

14

Page 15: Preview  Graph  Tree Binary Tree Binary Search Tree Binary Search Tree Property Binary Search Tree functions  In-order walk  Pre-order walk  Post-order

Operations on Binary Search Tree(Inorder, Preorder, Postorder) The binary-search-tree property allows us to print

out all the keys in a binary search tree in sorted order by a simple recursive algorithm, called an inorder tree walk.

Running Time T(n) = 2T(n/2) + 1 = O(n)

COSC 220 Computer Science II, Spr.2012 Dr. Sang-Eon Park

15

Inorder_Tree_Walk(x){1 If x NIL

{2 Inorder_Tree_Walk(xleftchild);3 print x key4 Inorder_Tree_Walk(x rightchild);

}} 

Page 16: Preview  Graph  Tree Binary Tree Binary Search Tree Binary Search Tree Property Binary Search Tree functions  In-order walk  Pre-order walk  Post-order

Operations on Binary Search Tree(Inorder, Preorder, Postorder)

COSC 220 Computer Science II, Spr.2012 Dr. Sang-Eon Park

16

Preorder_Tree_Walk(x){1 If x NIL

{2 Print x key;3 Inorder_Tree_Walk(xleftchild);4 Inorder_Tree_Walk(x rightchild);

}} Postorder_Tree_Walk(x){1 If x NIL

{2 Inorder_Tree_Walk(xleftchild);3 Inorder_Tree_Walk(x rightchild);4 Print x key;

}} 

Page 17: Preview  Graph  Tree Binary Tree Binary Search Tree Binary Search Tree Property Binary Search Tree functions  In-order walk  Pre-order walk  Post-order

Operations on Binary Search Tree(Inorder, Preorder, Postorder)

COSC320 Algorithm Design & Analysis, Fall12 Dr. Sang-Eon Park

17

5

7

2 8

14

9

41

163

1 2 3 4 5 7 8 9 14 16

Inorder_Tree_Walk(x)

{

1 If x NIL {

2 Inorder_Tree_Walk(xleftchild);3 print x key4 Inorder_Tree_Walk(x rightchild); }

Page 18: Preview  Graph  Tree Binary Tree Binary Search Tree Binary Search Tree Property Binary Search Tree functions  In-order walk  Pre-order walk  Post-order

Operations on Binary Search Tree(Inorder, Preorder, Postorder)

COSC 220 Computer Science II, Spr.2012 Dr. Sang-Eon Park

18

5

7

2 8

14

9

41

163

7 2 1 4 3 5 8 14 9 16

Preorder_Tree_Walk(x)

{

1 If x NIL {

2 print x key;3 Inorder_Tree_Walk(xleftchild);4 Inorder_Tree_Walk(x rightchild); }

Page 19: Preview  Graph  Tree Binary Tree Binary Search Tree Binary Search Tree Property Binary Search Tree functions  In-order walk  Pre-order walk  Post-order

Operations on Binary Search Tree(Inorder, Preorder, Postorder)

COSC 220 Computer Science II, Spr.2012 Dr. Sang-Eon Park

19

5

7

2 8

14

9

41

163

721 43 5 8149 16

Postorder_Tree_Walk(x)

{

1 If x NIL {

2 Inorder_Tree_Walk(xleftchild);3 Inorder_Tree_Walk(x rightchild);4 Print x key; }

Page 20: Preview  Graph  Tree Binary Tree Binary Search Tree Binary Search Tree Property Binary Search Tree functions  In-order walk  Pre-order walk  Post-order

Operations on Binary Search Tree(Search an Element) Searching a binary search tree for a specific value can be a

recursive or iterative process. We begin by examining the root node. If the tree is null, the

value we are searching for does not exist in the tree. Otherwise, if the value equals the root, the search is successful. If the value is less than the root, search the left sub-tree.

If it is greater than the root, search the right subtree. This process is repeated until the value is found or the indicated sub-tree is null. If the searched value is not found before a null sub-tree is reached, then the item must not be present in the tree.

COSC 220 Computer Science II, Spr.2012 Dr. Sang-Eon Park

20

Page 21: Preview  Graph  Tree Binary Tree Binary Search Tree Binary Search Tree Property Binary Search Tree functions  In-order walk  Pre-order walk  Post-order

Operations on Binary Search Tree(Search an Element)SearchingInput: pointer to the root of the tree and a key k, Output: returns a pointer to a node with key k if one exists;

otherwise return NIL.

T(n) = T(n/2) + 1 = O(log n) if a binary tree is balanced T(n)= T(n-1) + 1 = O(n) if a binary tree is not balanced

COSC 220 Computer Science II, Spr.2012 Dr. Sang-Eon Park

21

Tree_Search (x, k){1 if x == NIL or k == x key return x;2 if k < x key3 return Tree_Search (x leftchild, k);4 else5 return Tree_Search(x rightchild, k);} 

Page 22: Preview  Graph  Tree Binary Tree Binary Search Tree Binary Search Tree Property Binary Search Tree functions  In-order walk  Pre-order walk  Post-order

Operations on Binary Search Tree(Search an Element)

COSC320 Algorithm Design & Analysis, Fall12 Dr. Sang-Eon Park

22

5

13

10 14

11

12

3

Search (x, 14)x 14 = 5 or 14> 5 or 14 < 5 ?

Page 23: Preview  Graph  Tree Binary Tree Binary Search Tree Binary Search Tree Property Binary Search Tree functions  In-order walk  Pre-order walk  Post-order

Operations on Binary Search Tree(Search an Element)

COSC320 Algorithm Design & Analysis, Fall12 Dr. Sang-Eon Park

23

13

10 14

11

12

Search (x, 14)

x 14= 13 or 14> 13 or 14 < 13 ?

14= 14 or 14> 14 or 14 < 14 ?

Page 24: Preview  Graph  Tree Binary Tree Binary Search Tree Binary Search Tree Property Binary Search Tree functions  In-order walk  Pre-order walk  Post-order

Operations on Binary Search Tree(Search an Element)

Searching a binary search tree for a specific value can be a recursive or iterative process. Following shows the iterative version of tree search

COSC 220 Computer Science II, Spr.2012 Dr. Sang-Eon Park

24

Tree_Search_II(x, k){1 y = x; //better not modify pointer x2 while y NIL and k y key

{3 if k < y key4 y = y leftchild;5 else6 y = y rightchild;

}7 return y; } 

Page 25: Preview  Graph  Tree Binary Tree Binary Search Tree Binary Search Tree Property Binary Search Tree functions  In-order walk  Pre-order walk  Post-order

Operations on Binary Search Tree(Search an Element)

COSC320 Algorithm Design & Analysis, Fall12 Dr. Sang-Eon Park

25

15

5 16

13

10 14

20

18 23

11

12

3

Search (x, 14)x

14 = 5 or 14> 5 or 14 < 5 ?

Page 26: Preview  Graph  Tree Binary Tree Binary Search Tree Binary Search Tree Property Binary Search Tree functions  In-order walk  Pre-order walk  Post-order

Operations on Binary Search Tree(Search an Element)

COSC320 Algorithm Design & Analysis, Fall12 Dr. Sang-Eon Park

26

15

5 16

13

10 14

20

18 23

11

12

3

Search (x, 14)

x

14 = 12 or 14> 12 or 14 < 12 ?

14 = 13 or 14> 13 or 14 < 13 ?

Page 27: Preview  Graph  Tree Binary Tree Binary Search Tree Binary Search Tree Property Binary Search Tree functions  In-order walk  Pre-order walk  Post-order

Operations on Binary Search Tree(Insert a New Node)

Insertion begins as a search would begin; if the root is not NIL, we search the left or right sub-trees as before.

Eventually, we will reach an external node and add the value as its right or left child, depending on the node's value.

COSC 220 Computer Science II, Spr.2012 Dr. Sang-Eon Park

27

Page 28: Preview  Graph  Tree Binary Tree Binary Search Tree Binary Search Tree Property Binary Search Tree functions  In-order walk  Pre-order walk  Post-order

Operations on Binary Search Tree(Insert a New Node)

COSC 220 Computer Science II, Spr.2012 Dr. Sang-Eon Park

28

// T is point to root of binary tree z is point to new node Tree_Insert (T, z){1 y = NIL;2 x = T;

//while loop find out the location for new node3 while x NIL

{4 y = x;5 if z key < x key6 x = x leftchild;7 else8 x = x rightchild;

}9 z parent = y;10 if y = NIL; // means there is any node in the BST11 T = z; //new node become root12 else if z key < y key13 y leftchild = z; // insert new node as a left child o y14 else15 y rightchild = z; //insert new node as a right child of y} 

Page 29: Preview  Graph  Tree Binary Tree Binary Search Tree Binary Search Tree Property Binary Search Tree functions  In-order walk  Pre-order walk  Post-order

Operations on Binary Search Tree(Insert a New Node)

COSC320 Algorithm Design & Analysis, Fall12 Dr. Sang-Eon Park

29

1614 587 9 32 4 1

Page 30: Preview  Graph  Tree Binary Tree Binary Search Tree Binary Search Tree Property Binary Search Tree functions  In-order walk  Pre-order walk  Post-order

Operations on Binary Search Tree(Insert a New Node)

COSC320 Algorithm Design & Analysis, Fall12 Dr. Sang-Eon Park

30

1614 58 9 32 4 1

7

Page 31: Preview  Graph  Tree Binary Tree Binary Search Tree Binary Search Tree Property Binary Search Tree functions  In-order walk  Pre-order walk  Post-order

Operations on Binary Search Tree(Insert a New Node)

COSC320 Algorithm Design & Analysis, Fall12 Dr. Sang-Eon Park

31

1614 58 9 32 4 1

72<7 or 2 >7 ?

Page 32: Preview  Graph  Tree Binary Tree Binary Search Tree Binary Search Tree Property Binary Search Tree functions  In-order walk  Pre-order walk  Post-order

Operations on Binary Search Tree(Insert a New Node)

COSC320 Algorithm Design & Analysis, Fall12 Dr. Sang-Eon Park

32

1614 58 9 34 1

7

2

Page 33: Preview  Graph  Tree Binary Tree Binary Search Tree Binary Search Tree Property Binary Search Tree functions  In-order walk  Pre-order walk  Post-order

Operations on Binary Search Tree(Insert a New Node)

COSC320 Algorithm Design & Analysis, Fall12 Dr. Sang-Eon Park

33

1614 58 9 34 1

7

2

8<7 or 8 >7 ?

Page 34: Preview  Graph  Tree Binary Tree Binary Search Tree Binary Search Tree Property Binary Search Tree functions  In-order walk  Pre-order walk  Post-order

Operations on Binary Search Tree(Insert a New Node)

COSC320 Algorithm Design & Analysis, Fall12 Dr. Sang-Eon Park

34

1614 59 34 1

7

2 8

Page 35: Preview  Graph  Tree Binary Tree Binary Search Tree Binary Search Tree Property Binary Search Tree functions  In-order walk  Pre-order walk  Post-order

Operations on Binary Search Tree(Insert a New Node)

COSC320 Algorithm Design & Analysis, Fall12 Dr. Sang-Eon Park

35

1614 59 34 1

7

2 8

14<7 or 14 >7 ?

Page 36: Preview  Graph  Tree Binary Tree Binary Search Tree Binary Search Tree Property Binary Search Tree functions  In-order walk  Pre-order walk  Post-order

Operations on Binary Search Tree(Insert a New Node)

COSC320 Algorithm Design & Analysis, Fall12 Dr. Sang-Eon Park

36

1614 59 34 1

7

2 8

14<8 or 14 >8 ?

Page 37: Preview  Graph  Tree Binary Tree Binary Search Tree Binary Search Tree Property Binary Search Tree functions  In-order walk  Pre-order walk  Post-order

Operations on Binary Search Tree(Insert a New Node)

COSC320 Algorithm Design & Analysis, Fall12 Dr. Sang-Eon Park

37

16 59 34 1

7

2 8

14

Page 38: Preview  Graph  Tree Binary Tree Binary Search Tree Binary Search Tree Property Binary Search Tree functions  In-order walk  Pre-order walk  Post-order

Operations on Binary Search Tree(Insert a New Node)

COSC320 Algorithm Design & Analysis, Fall12 Dr. Sang-Eon Park

38

16 59 34 1

7

2 8

14

9<7 or 9 >7 ?

Page 39: Preview  Graph  Tree Binary Tree Binary Search Tree Binary Search Tree Property Binary Search Tree functions  In-order walk  Pre-order walk  Post-order

Operations on Binary Search Tree(Insert a New Node)

COSC320 Algorithm Design & Analysis, Fall12 Dr. Sang-Eon Park

39

16 59 34 1

7

2 8

14

9<8 or 9 >8 ?

Page 40: Preview  Graph  Tree Binary Tree Binary Search Tree Binary Search Tree Property Binary Search Tree functions  In-order walk  Pre-order walk  Post-order

Operations on Binary Search Tree(Insert a New Node)

COSC320 Algorithm Design & Analysis, Fall12 Dr. Sang-Eon Park

40

16 59 34 1

7

2 8

14

9<14 or 9 >14 ?

Page 41: Preview  Graph  Tree Binary Tree Binary Search Tree Binary Search Tree Property Binary Search Tree functions  In-order walk  Pre-order walk  Post-order

Operations on Binary Search Tree(Insert a New Node)

COSC320 Algorithm Design & Analysis, Fall12 Dr. Sang-Eon Park

41

16 534 1

7

2 8

14

9

Page 42: Preview  Graph  Tree Binary Tree Binary Search Tree Binary Search Tree Property Binary Search Tree functions  In-order walk  Pre-order walk  Post-order

Operations on Binary Search Tree(Insert a New Node)

COSC320 Algorithm Design & Analysis, Fall12 Dr. Sang-Eon Park

42

16 534 1

7

2 8

14

9

4<7 or 4 >7 ?

Page 43: Preview  Graph  Tree Binary Tree Binary Search Tree Binary Search Tree Property Binary Search Tree functions  In-order walk  Pre-order walk  Post-order

Operations on Binary Search Tree(Insert a New Node)

COSC320 Algorithm Design & Analysis, Fall12 Dr. Sang-Eon Park

43

16 534 1

7

2 8

14

9

4<2 or 4 >2 ?

Page 44: Preview  Graph  Tree Binary Tree Binary Search Tree Binary Search Tree Property Binary Search Tree functions  In-order walk  Pre-order walk  Post-order

Operations on Binary Search Tree(Insert a New Node)

COSC320 Algorithm Design & Analysis, Fall12 Dr. Sang-Eon Park

44

16 531

7

2 8

14

9

4

Page 45: Preview  Graph  Tree Binary Tree Binary Search Tree Binary Search Tree Property Binary Search Tree functions  In-order walk  Pre-order walk  Post-order

Operations on Binary Search Tree(Insert a New Node)

COSC320 Algorithm Design & Analysis, Fall12 Dr. Sang-Eon Park

45

16 531

7

2 8

14

9

4

1<7 or1 >7 ?

Page 46: Preview  Graph  Tree Binary Tree Binary Search Tree Binary Search Tree Property Binary Search Tree functions  In-order walk  Pre-order walk  Post-order

Operations on Binary Search Tree(Insert a New Node)

COSC320 Algorithm Design & Analysis, Fall12 Dr. Sang-Eon Park

46

16 531

7

2 8

14

9

4

1<2 or 1 >2 ?

Page 47: Preview  Graph  Tree Binary Tree Binary Search Tree Binary Search Tree Property Binary Search Tree functions  In-order walk  Pre-order walk  Post-order

Operations on Binary Search Tree(Insert a New Node)

COSC320 Algorithm Design & Analysis, Fall12 Dr. Sang-Eon Park

47

16 53

7

2 8

14

9

41

Page 48: Preview  Graph  Tree Binary Tree Binary Search Tree Binary Search Tree Property Binary Search Tree functions  In-order walk  Pre-order walk  Post-order

Operations on Binary Search Tree(Insert a New Node)

COSC320 Algorithm Design & Analysis, Fall12 Dr. Sang-Eon Park

48

16 53

7

2 8

14

9

41

16<7 or 16 >7 ?

Page 49: Preview  Graph  Tree Binary Tree Binary Search Tree Binary Search Tree Property Binary Search Tree functions  In-order walk  Pre-order walk  Post-order

Operations on Binary Search Tree(Insert a New Node)

COSC320 Algorithm Design & Analysis, Fall12 Dr. Sang-Eon Park

49

16 53

7

2 8

14

9

41

16<8 or 16 >8 ?

Page 50: Preview  Graph  Tree Binary Tree Binary Search Tree Binary Search Tree Property Binary Search Tree functions  In-order walk  Pre-order walk  Post-order

Operations on Binary Search Tree(Insert a New Node)

COSC320 Algorithm Design & Analysis, Fall12 Dr. Sang-Eon Park

50

16 53

7

2 8

14

9

41

16<14 or 16 >14 ?

Page 51: Preview  Graph  Tree Binary Tree Binary Search Tree Binary Search Tree Property Binary Search Tree functions  In-order walk  Pre-order walk  Post-order

Operations on Binary Search Tree(Insert a New Node)

COSC320 Algorithm Design & Analysis, Fall12 Dr. Sang-Eon Park

51

53

7

2 8

14

9

41

16

Page 52: Preview  Graph  Tree Binary Tree Binary Search Tree Binary Search Tree Property Binary Search Tree functions  In-order walk  Pre-order walk  Post-order

Operations on Binary Search Tree(Insert a New Node)

COSC320 Algorithm Design & Analysis, Fall12 Dr. Sang-Eon Park

52

53

7

2 8

14

9

41

16

3<7 or 3 >7 ?

Page 53: Preview  Graph  Tree Binary Tree Binary Search Tree Binary Search Tree Property Binary Search Tree functions  In-order walk  Pre-order walk  Post-order

Operations on Binary Search Tree(Insert a New Node)

COSC320 Algorithm Design & Analysis, Fall12 Dr. Sang-Eon Park

53

53

7

2 8

14

9

41

16

3<2 or 3 >2 ?

Page 54: Preview  Graph  Tree Binary Tree Binary Search Tree Binary Search Tree Property Binary Search Tree functions  In-order walk  Pre-order walk  Post-order

Operations on Binary Search Tree(Insert a New Node)

COSC320 Algorithm Design & Analysis, Fall12 Dr. Sang-Eon Park

54

53

7

2 8

14

9

41

16

3<4 or 3 >4 ?

Page 55: Preview  Graph  Tree Binary Tree Binary Search Tree Binary Search Tree Property Binary Search Tree functions  In-order walk  Pre-order walk  Post-order

Operations on Binary Search Tree(Insert a New Node)

COSC320 Algorithm Design & Analysis, Fall12 Dr. Sang-Eon Park

55

5

7

2 8

14

9

41

163

Page 56: Preview  Graph  Tree Binary Tree Binary Search Tree Binary Search Tree Property Binary Search Tree functions  In-order walk  Pre-order walk  Post-order

Operations on Binary Search Tree(Insert a New Node)

COSC320 Algorithm Design & Analysis, Fall12 Dr. Sang-Eon Park

56

5

7

2 8

14

9

41

163

5<7 or 5 >7 ?

Page 57: Preview  Graph  Tree Binary Tree Binary Search Tree Binary Search Tree Property Binary Search Tree functions  In-order walk  Pre-order walk  Post-order

Operations on Binary Search Tree(Insert a New Node)

COSC320 Algorithm Design & Analysis, Fall12 Dr. Sang-Eon Park

57

5

7

2 8

14

9

41

163

5<2 or 5 >2 ?

Page 58: Preview  Graph  Tree Binary Tree Binary Search Tree Binary Search Tree Property Binary Search Tree functions  In-order walk  Pre-order walk  Post-order

Operations on Binary Search Tree(Insert a New Node)

COSC320 Algorithm Design & Analysis, Fall12 Dr. Sang-Eon Park

58

5

7

2 8

14

9

41

163

5<4 or 5 >4 ?

Page 59: Preview  Graph  Tree Binary Tree Binary Search Tree Binary Search Tree Property Binary Search Tree functions  In-order walk  Pre-order walk  Post-order

Operations on Binary Search Tree(Insert a New Node)

COSC320 Algorithm Design & Analysis, Fall12 Dr. Sang-Eon Park

59

5

7

2 8

14

9

41

163

Page 60: Preview  Graph  Tree Binary Tree Binary Search Tree Binary Search Tree Property Binary Search Tree functions  In-order walk  Pre-order walk  Post-order

Operations on Binary Search Tree(Minimum Element)

Minimum An element in a binary search tree whose key is a

minimum can always be found by leftmost child. 

T(n) = O(log2 n) or possible worst case O(n)

COSC 220 Computer Science II, Spr.2012 Dr. Sang-Eon Park

60

Tree_Minimum(x){0 y = x;1 while y leftchild NIL2 y = y leftchild;3 return y;} 

Page 61: Preview  Graph  Tree Binary Tree Binary Search Tree Binary Search Tree Property Binary Search Tree functions  In-order walk  Pre-order walk  Post-order

Operations on Binary Search Tree(Maximum Element)

Maximum An element in a binary search tree whose key is a

maximum can always be founded by rightmost child.

 

T(n) = O( log2 n)

COSC 220 Computer Science II, Spr.2012 Dr. Sang-Eon Park

61

Tree_Maximum(x){0 y = x;1 while y rightchild NIL2 y = y rightchild;3 return y;} 

Page 62: Preview  Graph  Tree Binary Tree Binary Search Tree Binary Search Tree Property Binary Search Tree functions  In-order walk  Pre-order walk  Post-order

Operations on Binary Search Tree(Successor of a Node) The successor of a node x is the node with

the smallest key greater than x->key We need to concern two cases

1. If the right subtree of x is not empty, then the successor of x is the minimum of right subtree.

2. If the right subtree of x is empty and x has a successor y, then y is the lowest ancestor of x whose left child is also an ancestor of x.

COSC 220 Computer Science II, Spr.2012 Dr. Sang-Eon Park

62

Page 63: Preview  Graph  Tree Binary Tree Binary Search Tree Binary Search Tree Property Binary Search Tree functions  In-order walk  Pre-order walk  Post-order

Operations on Binary Search Tree(Successor of a Node)

COSC 220 Computer Science II, Spr.2012 Dr. Sang-Eon Park

63

15

6

7

18

20173

42 13

9

Ex) successor of node 15 is 17 (min of right subtree)Ex) successor of node 13 is 15.

Page 64: Preview  Graph  Tree Binary Tree Binary Search Tree Binary Search Tree Property Binary Search Tree functions  In-order walk  Pre-order walk  Post-order

Operations on Binary Search Tree(Successor of a Node)

COSC 220 Computer Science II, Spr.2012 Dr. Sang-Eon Park

64

Tree_Successor (x){1 if x rightchild NIL

return Tree_Minimum(x rightchild);2 else

{3 y = x parent;

// if x is y’s leftchild then y is successor of x4 while y NIL and x ==y rightchild

{5 x = y;6 y = y parent;

}7 return y;

}} 

Page 65: Preview  Graph  Tree Binary Tree Binary Search Tree Binary Search Tree Property Binary Search Tree functions  In-order walk  Pre-order walk  Post-order

Operations on Binary Search Tree(Predecessor of a Node) The predecessor of a node x is the node

with the largest key smaller than key(x) We need to concern two cases

1. If the left subtree of x is not empty, then the predecessor of x is the maximum of right subtree.

2. If the left subtree of x is empty and x has a predecessor y, then y is the lowest ancestor of x whose right child is also an ancestor of x.

COSC 220 Computer Science II, Spr.2012 Dr. Sang-Eon Park

65

Page 66: Preview  Graph  Tree Binary Tree Binary Search Tree Binary Search Tree Property Binary Search Tree functions  In-order walk  Pre-order walk  Post-order

Operations on Binary Search Tree(Predecessor of a Node)

COSC 220 Computer Science II, Spr.2012 Dr. Sang-Eon Park

66

15

6

7

18

20173

42 13

9

Ex) Predecessor of node 15 is 13 (Maximum of left subtree)Ex) Predecessor of node 9 is 7.

Page 67: Preview  Graph  Tree Binary Tree Binary Search Tree Binary Search Tree Property Binary Search Tree functions  In-order walk  Pre-order walk  Post-order

Operations on Binary Search Tree(Predecessor of a Node)

COSC 220 Computer Science II, Spr.2012 Dr. Sang-Eon Park

67

Tree_Predecessor (x){1 if x leftchild NIL

return Tree_Maximum(x leftchild)2 else

{3 y = x parent

// if x is y’s rightchild then y is predecessor of x4 while y NIL and x ==y leftchild

{5 x = y6 y = y parent

}7 return y

}} 

Page 68: Preview  Graph  Tree Binary Tree Binary Search Tree Binary Search Tree Property Binary Search Tree functions  In-order walk  Pre-order walk  Post-order

Operations on Binary Search Tree(Delete a Node)

There are three cases needed to be concern in binary tree deletion.

1. A deleting node has no children ( deleting node is a leaf)

2. A deleting node has one children.3. A deleting node has two children.

a) If successor of deleting node is a leafb) If successor of deleting node is not a leaf

COSC 220 Computer Science II, Spr.2012 Dr. Sang-Eon Park

68

Page 69: Preview  Graph  Tree Binary Tree Binary Search Tree Binary Search Tree Property Binary Search Tree functions  In-order walk  Pre-order walk  Post-order

Operations on Binary Search Tree(Delete a Node)

COSC 220 Computer Science II, Spr.2012 Dr. Sang-Eon Park

69

Delete Leaf Node

Page 70: Preview  Graph  Tree Binary Tree Binary Search Tree Binary Search Tree Property Binary Search Tree functions  In-order walk  Pre-order walk  Post-order

Operations on Binary Search Tree(Delete a Node)

COSC 220 Computer Science II, Spr.2012 Dr. Sang-Eon Park

70

Delete a Node with one child

Page 71: Preview  Graph  Tree Binary Tree Binary Search Tree Binary Search Tree Property Binary Search Tree functions  In-order walk  Pre-order walk  Post-order

Operations on Binary Search Tree(Delete a Node)

COSC 220 Computer Science II, Spr.2012 Dr. Sang-Eon Park

71

Page 72: Preview  Graph  Tree Binary Tree Binary Search Tree Binary Search Tree Property Binary Search Tree functions  In-order walk  Pre-order walk  Post-order

Operations on Binary Search Tree(Delete a Node)

COSC 220 Computer Science II, Spr.2012 Dr. Sang-Eon Park

72

Page 73: Preview  Graph  Tree Binary Tree Binary Search Tree Binary Search Tree Property Binary Search Tree functions  In-order walk  Pre-order walk  Post-order

Operations on Binary Search Tree(Delete a Node)

COSC 220 Computer Science II, Spr.2012 Dr. Sang-Eon Park

73

Page 74: Preview  Graph  Tree Binary Tree Binary Search Tree Binary Search Tree Property Binary Search Tree functions  In-order walk  Pre-order walk  Post-order

Binary Search Tree(Delete a node)

COSC 220 Computer Science II, Spr.2012 Dr. Sang-Eon Park

74

Tree_Delete (T, z){

if z leftchild == NIL or z rightchild == NILy = z

elsey = Tree_Successor(z)

if y leftchild NILx = y leftchild

elsex = y rightchild

if x NILx parent = y parent

if y parent ==NILT root = x

else if y == y parent lefty parent leftchild = x

elsey parent rightchild = x

 if y z

z key =y keydelete y

}