cpe261702 algorithm analysis & design presentation topic in map
DESCRIPTION
CPE261702 ALGORITHM ANALYSIS & DESIGN PRESENTATION TOPIC IN MAP. Talking Outline. Introduction Basic Abstract Data Type (ADT) How do implementation ? Double Linked List Hash Table Bucket Array Hash Function Trie AVL Tree Performing & Complexity - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: CPE261702 ALGORITHM ANALYSIS & DESIGN PRESENTATION TOPIC IN MAP](https://reader035.vdocument.in/reader035/viewer/2022062800/56814073550346895dabf1e1/html5/thumbnails/1.jpg)
CPE261702 ALGORITHM ANALYSIS & DESIGNPRESENTATION TOPIC IN
MAP
1Master of Computer Engineering Chiangmai University
![Page 2: CPE261702 ALGORITHM ANALYSIS & DESIGN PRESENTATION TOPIC IN MAP](https://reader035.vdocument.in/reader035/viewer/2022062800/56814073550346895dabf1e1/html5/thumbnails/2.jpg)
Talking Outline
Introduction Basic Abstract Data Type (ADT) How do implementation ?
Double Linked List Hash Table
Bucket Array Hash Function
Trie AVL Tree
Performing & Complexity Demo Programmer
2Master of Computer Engineering Chiangmai University
![Page 3: CPE261702 ALGORITHM ANALYSIS & DESIGN PRESENTATION TOPIC IN MAP](https://reader035.vdocument.in/reader035/viewer/2022062800/56814073550346895dabf1e1/html5/thumbnails/3.jpg)
Basic Array
3Master of Computer Engineering Chiangmai University
12000 11000 15000 20000 18000Array salary
0 1 2 3 4index
We can build to platform ( php code )
$salary[i] = ?EX.
$salary[1] =$salary[3] =
But we can’t know. Who’s salary ?
1100020000
![Page 4: CPE261702 ALGORITHM ANALYSIS & DESIGN PRESENTATION TOPIC IN MAP](https://reader035.vdocument.in/reader035/viewer/2022062800/56814073550346895dabf1e1/html5/thumbnails/4.jpg)
Associative Array
4Master of Computer Engineering Chiangmai University
12000 11000 15000 20000 18000Array salary
Sara Bob Smith John Stevename
We can build to platform ( php code )
$salary[‘name’] = ?EX.
$salary[‘Smith’] =
We can replace index by name.
15000
![Page 5: CPE261702 ALGORITHM ANALYSIS & DESIGN PRESENTATION TOPIC IN MAP](https://reader035.vdocument.in/reader035/viewer/2022062800/56814073550346895dabf1e1/html5/thumbnails/5.jpg)
Abstract Data Type
Since a map store a collection of object, it should be viewed as a collection of key-value pairs. As an ADT, a map M supports the following methods :
size () : Return the number of entries in M isEmpty () : Test whether M is empty. get (k) : If M contain an entry e with key equal to k, then return the value of e, else return null. put (k,v) : If M does not have an entry with key equal to k, then add entry (k,v) to M and return null; else, replace with v the existing value of the entry with key equal to k and return the old value. remove (k) : Remove from M the entry with key equal to k, and return its value; if M has no such entry, then return null.
5Master of Computer Engineering Chiangmai University
![Page 6: CPE261702 ALGORITHM ANALYSIS & DESIGN PRESENTATION TOPIC IN MAP](https://reader035.vdocument.in/reader035/viewer/2022062800/56814073550346895dabf1e1/html5/thumbnails/6.jpg)
Abstract Data Type (Cont.)
keys () : Return an iterable collection containing all the keys stored in M (so keys().iterator() returns an iterator of keys). values () : Return an iterable collection containing all the values associated with keys stored in M (so values().iterator() returns an iterator of values). entries () : Return an iterable collection containing all the key- value entries in M (so entries().iterator() returns an iterator of entries).
6Master of Computer Engineering Chiangmai University
![Page 7: CPE261702 ALGORITHM ANALYSIS & DESIGN PRESENTATION TOPIC IN MAP](https://reader035.vdocument.in/reader035/viewer/2022062800/56814073550346895dabf1e1/html5/thumbnails/7.jpg)
Example
7Master of Computer Engineering Chiangmai University
Operation Output Map
isEmpty() true Ø
put(5,A) null {(5,A)}
put(7,B) null {(5,A),(7,B)}
put(2,C) null {(5,A),(7,B),(2,C)}
put(8,D) null {(5,A),(7,B),(2,C),(8,D)}
put(2,E) C {(5,A),(7,B),(2,E),(8,D)}
get(7) B {(5,A),(7,B),(2,E),(8,D)}
get(4) null {(5,A),(7,B),(2,E),(8,D)}
get(2) E {(5,A),(7,B),(2,E),(8,D)}
size() 4 {(5,A),(7,B),(2,E),(8,D)}
![Page 8: CPE261702 ALGORITHM ANALYSIS & DESIGN PRESENTATION TOPIC IN MAP](https://reader035.vdocument.in/reader035/viewer/2022062800/56814073550346895dabf1e1/html5/thumbnails/8.jpg)
Example (Cont.)
8Master of Computer Engineering Chiangmai University
Operation Output Map
remove(5) A {(7,B),(2,E),(8,D)}
remove(2) E {(7,B),(8,D)}
get(2) null {(7,B),(8,D)}
isEmply() false {(7,B),(8,D)}
![Page 9: CPE261702 ALGORITHM ANALYSIS & DESIGN PRESENTATION TOPIC IN MAP](https://reader035.vdocument.in/reader035/viewer/2022062800/56814073550346895dabf1e1/html5/thumbnails/9.jpg)
Simple List-Based Map
A simple way of implementing a map is to store its n entries in list S,Implemented as an unsorted list ( base on doubly linked list ).
9Master of Computer Engineering Chiangmai University
trailerheader
nodes/positions
entries
Sara 11000
put ( Sara , 11000 )
![Page 10: CPE261702 ALGORITHM ANALYSIS & DESIGN PRESENTATION TOPIC IN MAP](https://reader035.vdocument.in/reader035/viewer/2022062800/56814073550346895dabf1e1/html5/thumbnails/10.jpg)
Simple List-Based Map
put ( Bob , 12000 )
10Master of Computer Engineering Chiangmai University
trailerheader
nodes/positions
entries
Sara 11000 Bob 12000
![Page 11: CPE261702 ALGORITHM ANALYSIS & DESIGN PRESENTATION TOPIC IN MAP](https://reader035.vdocument.in/reader035/viewer/2022062800/56814073550346895dabf1e1/html5/thumbnails/11.jpg)
Simple List-Based Map
put ( Smith , 15000 )
11Master of Computer Engineering Chiangmai University
trailerheader
nodes/positions
entries
Sara 11000 Bob 12000 Smith 15000
![Page 12: CPE261702 ALGORITHM ANALYSIS & DESIGN PRESENTATION TOPIC IN MAP](https://reader035.vdocument.in/reader035/viewer/2022062800/56814073550346895dabf1e1/html5/thumbnails/12.jpg)
Simple List-Based Map
put ( Steve , 18000 )
12Master of Computer Engineering Chiangmai University
trailerheader
nodes/positions
entries
Sara 11000 Bob 12000 Smith 15000 Steve 18000
![Page 13: CPE261702 ALGORITHM ANALYSIS & DESIGN PRESENTATION TOPIC IN MAP](https://reader035.vdocument.in/reader035/viewer/2022062800/56814073550346895dabf1e1/html5/thumbnails/13.jpg)
Simple List-Based Map
put ( Smith , 20000 )
13Master of Computer Engineering Chiangmai University
trailerheader
nodes/positions
entries
Sara 11000 Bob 12000 Smith Steve 180002000015000
Return value = 15000
![Page 14: CPE261702 ALGORITHM ANALYSIS & DESIGN PRESENTATION TOPIC IN MAP](https://reader035.vdocument.in/reader035/viewer/2022062800/56814073550346895dabf1e1/html5/thumbnails/14.jpg)
Simple List-Based Map
get ( Steve )
14Master of Computer Engineering Chiangmai University
trailerheader
nodes/positions
entries
Sara 11000 Bob 12000 Smith 20000 Steve 18000
Return value = 18000
![Page 15: CPE261702 ALGORITHM ANALYSIS & DESIGN PRESENTATION TOPIC IN MAP](https://reader035.vdocument.in/reader035/viewer/2022062800/56814073550346895dabf1e1/html5/thumbnails/15.jpg)
Simple List-Based Map
get ( John )
15Master of Computer Engineering Chiangmai University
trailerheader
nodes/positions
entries
Sara 11000 Bob 12000 Smith 20000 Steve 18000
Return value = null
![Page 16: CPE261702 ALGORITHM ANALYSIS & DESIGN PRESENTATION TOPIC IN MAP](https://reader035.vdocument.in/reader035/viewer/2022062800/56814073550346895dabf1e1/html5/thumbnails/16.jpg)
Simple List-Based Map
remove ( Bob )
16Master of Computer Engineering Chiangmai University
trailerheader
nodes/positions
entries
Sara 11000 Bob 12000 Smith 20000 Steve 18000
Return value = 12000
![Page 17: CPE261702 ALGORITHM ANALYSIS & DESIGN PRESENTATION TOPIC IN MAP](https://reader035.vdocument.in/reader035/viewer/2022062800/56814073550346895dabf1e1/html5/thumbnails/17.jpg)
Simple List-Based Map
remove ( Stephen )
17Master of Computer Engineering Chiangmai University
trailerheader
nodes/positions
entries
Sara 11000 Smith 20000 Steve 18000
Return value = null
![Page 18: CPE261702 ALGORITHM ANALYSIS & DESIGN PRESENTATION TOPIC IN MAP](https://reader035.vdocument.in/reader035/viewer/2022062800/56814073550346895dabf1e1/html5/thumbnails/18.jpg)
Simple List-Based Map Algorithm
Algorithm put ( k , v ) : Input : A key-value pair ( k , v ) Output : The old value associated with key k in M, or null if k is new for each position p in S.positions () do if p.element () .getkey () = k then t p.element () .getValue () B.set ( p, ( k , v )) return t S.addLast (( k , v )) n n + 1 return null
18Master of Computer Engineering Chiangmai University
![Page 19: CPE261702 ALGORITHM ANALYSIS & DESIGN PRESENTATION TOPIC IN MAP](https://reader035.vdocument.in/reader035/viewer/2022062800/56814073550346895dabf1e1/html5/thumbnails/19.jpg)
Simple List-Based Map Algorithm
Algorithm get ( k ) : Input : A key k Output : The value of key k in M, or null if there is no key k in M for each position p in S.positions () do if p.element () .getkey () = k then return p.element () .getvalue () return nullAlgorithm remove ( k ) : Input : A key k Output : The ( removed ) value of key k in M, or null if k is not in M for each position p in S.positions () do if p.element () .getkey () = k then t p.element () .getValue () S.remove ( p ) n n - 1 return t return null
19Master of Computer Engineering Chiangmai University
![Page 20: CPE261702 ALGORITHM ANALYSIS & DESIGN PRESENTATION TOPIC IN MAP](https://reader035.vdocument.in/reader035/viewer/2022062800/56814073550346895dabf1e1/html5/thumbnails/20.jpg)
Hash Table
Hash Table is data structure use to map identifying value, know as key (e.g., a person’s name ), to their associated value (e.g., their telephone number).
Two components in Hash Table :
Bucket Array
Hash Function
20Master of Computer Engineering Chiangmai University
![Page 21: CPE261702 ALGORITHM ANALYSIS & DESIGN PRESENTATION TOPIC IN MAP](https://reader035.vdocument.in/reader035/viewer/2022062800/56814073550346895dabf1e1/html5/thumbnails/21.jpg)
Hash Table Architecture
21Master of Computer Engineering Chiangmai University
String Key
String
Hash Code
Compression Function
Hash Function
Hash Table
Addr. Key Data
![Page 22: CPE261702 ALGORITHM ANALYSIS & DESIGN PRESENTATION TOPIC IN MAP](https://reader035.vdocument.in/reader035/viewer/2022062800/56814073550346895dabf1e1/html5/thumbnails/22.jpg)
Example Implement
A small phone book as a hash table.
22Master of Computer Engineering Chiangmai University
Figure Reference : http://th.wikipedia.org/
![Page 23: CPE261702 ALGORITHM ANALYSIS & DESIGN PRESENTATION TOPIC IN MAP](https://reader035.vdocument.in/reader035/viewer/2022062800/56814073550346895dabf1e1/html5/thumbnails/23.jpg)
Hash Table Algorithm
Map Methods with Separate Chaining used for Collisions.
Delegate operations to a list-based map at each cell.
23Master of Computer Engineering Chiangmai University
Algorithm get(k):
Output: The value associated with the key k in the map, or null if there is no
entry with key equal to k in the map
return B[h(k)].get(k) {delegate the get to the list-based map at B[h(k)]}
Algorithm put(k,v):
Output: If there is an existing entry in our map with key equal to k, then we
return its value (replacing it with v); otherwise, we return null
t = B[h(k)].put(k,v) {delegate the put to the list-based map at B[h(k)]}
if t = null then {k is a new key}
n = n + 1
return t
![Page 24: CPE261702 ALGORITHM ANALYSIS & DESIGN PRESENTATION TOPIC IN MAP](https://reader035.vdocument.in/reader035/viewer/2022062800/56814073550346895dabf1e1/html5/thumbnails/24.jpg)
Hash Table Algorithm
24Master of Computer Engineering Chiangmai University
Algorithm remove(k):
Output: The (removed) value associated with key k in the map, or null if there
is no entry with key equal to k in the map
t = B[h(k)].remove(k) {delegate the remove to the list-based map at B[h(k)]}
if t ≠ null then {k was found}
n = n - 1
return t
![Page 25: CPE261702 ALGORITHM ANALYSIS & DESIGN PRESENTATION TOPIC IN MAP](https://reader035.vdocument.in/reader035/viewer/2022062800/56814073550346895dabf1e1/html5/thumbnails/25.jpg)
The advantages of Hash Table
It has speed more than other table data
structures.
It has high performance when the number of entries
is large.
It has particularly efficient when the maximum
number of entries can be predicted in advance.
25Master of Computer Engineering Chiangmai University
![Page 26: CPE261702 ALGORITHM ANALYSIS & DESIGN PRESENTATION TOPIC IN MAP](https://reader035.vdocument.in/reader035/viewer/2022062800/56814073550346895dabf1e1/html5/thumbnails/26.jpg)
The disadvantages of Hash Table
Can’t be more difficult implement than self-balancing
Binary Search Tree ( BST )
Consuming more resources. If the data is less than the
surface area of reservation.
Not effective when the number of entries is very small.
Can’t find minimum or maximum data value.
Can’t sorting in Hash Table.
26Master of Computer Engineering Chiangmai University
![Page 27: CPE261702 ALGORITHM ANALYSIS & DESIGN PRESENTATION TOPIC IN MAP](https://reader035.vdocument.in/reader035/viewer/2022062800/56814073550346895dabf1e1/html5/thumbnails/27.jpg)
Trie
Ordered tree data structure.
Used to store an associative array.
The keys usually strings.
No node in the tree stores the key associated with
that node.
All the descendants of a node have a common prefix
of the string associated with that node.
The root is associated with the empty string.
Values are only associated with leaves and some inner
node that correspond to keys of interest.
27Master of Computer Engineering Chiangmai University
![Page 28: CPE261702 ALGORITHM ANALYSIS & DESIGN PRESENTATION TOPIC IN MAP](https://reader035.vdocument.in/reader035/viewer/2022062800/56814073550346895dabf1e1/html5/thumbnails/28.jpg)
Example
Tries
28Master of Computer Engineering Chiangmai University
Figure Reference : http://en.wikipedia.org
Keys Values
to 7
tea 3
ted 4
ten 12
A 15
i 11
in 5
inn 9
![Page 29: CPE261702 ALGORITHM ANALYSIS & DESIGN PRESENTATION TOPIC IN MAP](https://reader035.vdocument.in/reader035/viewer/2022062800/56814073550346895dabf1e1/html5/thumbnails/29.jpg)
Trie Algorithm
Pseudo-code for Insert:
29Master of Computer Engineering Chiangmai University
![Page 30: CPE261702 ALGORITHM ANALYSIS & DESIGN PRESENTATION TOPIC IN MAP](https://reader035.vdocument.in/reader035/viewer/2022062800/56814073550346895dabf1e1/html5/thumbnails/30.jpg)
Trie Algorithm
30Master of Computer Engineering Chiangmai University
Trie searching method used same way as search tree structure.
In this case, we use preorder traversal.
Algorithm preOrder(v)visit(v)for each child w of v
preorder (w)
![Page 31: CPE261702 ALGORITHM ANALYSIS & DESIGN PRESENTATION TOPIC IN MAP](https://reader035.vdocument.in/reader035/viewer/2022062800/56814073550346895dabf1e1/html5/thumbnails/31.jpg)
Tries Compare BST.
The main advantages of the tries over binary search trees(BSTs) :
Looking up keys is faster.
Tries can require less space when they contain a large number
of short string.
Tries facilitate longest-prefix matching.
31Master of Computer Engineering Chiangmai University
![Page 32: CPE261702 ALGORITHM ANALYSIS & DESIGN PRESENTATION TOPIC IN MAP](https://reader035.vdocument.in/reader035/viewer/2022062800/56814073550346895dabf1e1/html5/thumbnails/32.jpg)
Tries Compare Hash Table.
The main advantages of the tries over hash tables:
Tries can perform a “closest fit ” find almost as quickly as an
exact find.
Tries tend to be faster on average at insertion than hash table.
Tries can be implemented in a way which avoids the need for
additional ( dynamic ) memory.
Looking up keys can be much faster if a hash function can be
avoided.
32Master of Computer Engineering Chiangmai University
![Page 33: CPE261702 ALGORITHM ANALYSIS & DESIGN PRESENTATION TOPIC IN MAP](https://reader035.vdocument.in/reader035/viewer/2022062800/56814073550346895dabf1e1/html5/thumbnails/33.jpg)
Advantages of Tries
Looking up data in a trie is faster in the worst case, O(m) time,
compared to an imperfect hash table.
There are no collisions of different keys in a trie.
Bucket in a trie which are analogous to hash table bucket that
store key collisions are only necessary if a single key is
associated with more than one value.
There is no need to provide a hash function or to change hash
functions as more keys are added to a trie.
A trie can provide an alphabetical ordering of the entries by key.
33Master of Computer Engineering Chiangmai University
![Page 34: CPE261702 ALGORITHM ANALYSIS & DESIGN PRESENTATION TOPIC IN MAP](https://reader035.vdocument.in/reader035/viewer/2022062800/56814073550346895dabf1e1/html5/thumbnails/34.jpg)
AVL Tree
AVL Tree is a self-balancing binary search tree. In an AVL tree,
The height of the two child subtrees of any node differ by at
most one.
Search, insertion, and deletion all take O( log n ) time.
Insertion and deletion may require the tree to be re balanced by
one or more tree rotation.
34Master of Computer Engineering Chiangmai University
![Page 35: CPE261702 ALGORITHM ANALYSIS & DESIGN PRESENTATION TOPIC IN MAP](https://reader035.vdocument.in/reader035/viewer/2022062800/56814073550346895dabf1e1/html5/thumbnails/35.jpg)
AVL Tree Architecture
35Master of Computer Engineering Chiangmai University
String KeyMathematic
FunctionInteger Key AVL Tree
![Page 36: CPE261702 ALGORITHM ANALYSIS & DESIGN PRESENTATION TOPIC IN MAP](https://reader035.vdocument.in/reader035/viewer/2022062800/56814073550346895dabf1e1/html5/thumbnails/36.jpg)
Example Implement
36Master of Computer Engineering Chiangmai University
44,A
17,B 78,D
48,F
88,H50,E32,C
63,G
AVL Tree
![Page 37: CPE261702 ALGORITHM ANALYSIS & DESIGN PRESENTATION TOPIC IN MAP](https://reader035.vdocument.in/reader035/viewer/2022062800/56814073550346895dabf1e1/html5/thumbnails/37.jpg)
Insertion AVL Tree
37Master of Computer Engineering Chiangmai University
Insert (15,Q) 44,A
17,B 78,D
48,F
88,H50,E32,C
63,G
15,Q
![Page 38: CPE261702 ALGORITHM ANALYSIS & DESIGN PRESENTATION TOPIC IN MAP](https://reader035.vdocument.in/reader035/viewer/2022062800/56814073550346895dabf1e1/html5/thumbnails/38.jpg)
Insertion AVL Tree
38Master of Computer Engineering Chiangmai University
Insert (50,Z) 44,A
17,B 78,D
48,F
88,H32,C
63,G
15,Q 50,E50,Z
![Page 39: CPE261702 ALGORITHM ANALYSIS & DESIGN PRESENTATION TOPIC IN MAP](https://reader035.vdocument.in/reader035/viewer/2022062800/56814073550346895dabf1e1/html5/thumbnails/39.jpg)
Searching AVL Tree
39Master of Computer Engineering Chiangmai University
Search (48) 44,A
17,B 78,D
48,F
88,H50,Z32,C
63,G
15,Q
Return Value = F
![Page 40: CPE261702 ALGORITHM ANALYSIS & DESIGN PRESENTATION TOPIC IN MAP](https://reader035.vdocument.in/reader035/viewer/2022062800/56814073550346895dabf1e1/html5/thumbnails/40.jpg)
Searching AVL Tree
40Master of Computer Engineering Chiangmai University
Search (60) 44,A
17,B 78,D
48,F
88,H50,Z32,C
63,G
15,Q
Return Value = null
![Page 41: CPE261702 ALGORITHM ANALYSIS & DESIGN PRESENTATION TOPIC IN MAP](https://reader035.vdocument.in/reader035/viewer/2022062800/56814073550346895dabf1e1/html5/thumbnails/41.jpg)
Deletion AVL Tree
41Master of Computer Engineering Chiangmai University
Delete (63) 44,A
17,B 78,D
48,F
88,H50,Z32,C
63,G
15,Q
![Page 42: CPE261702 ALGORITHM ANALYSIS & DESIGN PRESENTATION TOPIC IN MAP](https://reader035.vdocument.in/reader035/viewer/2022062800/56814073550346895dabf1e1/html5/thumbnails/42.jpg)
Implement AVL Tree Algorithm
42Master of Computer Engineering Chiangmai University
Insertion Algorithm
Algorithm Insert ( data ,v )
Input : Insert a data ( key-value pair ) in T at position v
Output : New node(data) or replace data at key.data = key(v)
if T.isExternal (v)
T.put(data,v)
return null
if key.data = key(v)
old value = T.getvalue()
T.put(data,v)
return (old value)
![Page 43: CPE261702 ALGORITHM ANALYSIS & DESIGN PRESENTATION TOPIC IN MAP](https://reader035.vdocument.in/reader035/viewer/2022062800/56814073550346895dabf1e1/html5/thumbnails/43.jpg)
Implement AVL Tree Algorithm
43Master of Computer Engineering Chiangmai University
Else if key.data < key(v)
return Insert (k, T.left(v))
else if k.data > key(v)
return Insert (k, T.right(v))
if T is balancce
Return ()
else
Rebalancing Tree
![Page 44: CPE261702 ALGORITHM ANALYSIS & DESIGN PRESENTATION TOPIC IN MAP](https://reader035.vdocument.in/reader035/viewer/2022062800/56814073550346895dabf1e1/html5/thumbnails/44.jpg)
Implement AVL Tree Algorithm
44Master of Computer Engineering Chiangmai University
Searching Algorithm
Algorithm Search ( k ,v )
Input : A key k and position v
Output : Return value of key in position v, else return null
if T.isExternal (v)
return null
if k < key(v)
return remove(k, T.left(v))
else if k = key(v)
return T.getValue(v)
else { k > key(v) }
return Search(k, T.right(v))
![Page 45: CPE261702 ALGORITHM ANALYSIS & DESIGN PRESENTATION TOPIC IN MAP](https://reader035.vdocument.in/reader035/viewer/2022062800/56814073550346895dabf1e1/html5/thumbnails/45.jpg)
Implement AVL Tree Algorithm
45Master of Computer Engineering Chiangmai University
Deletion Algorithm
Algorithm delete ( k )
Input : searching by inorder traversal with key k
Output : return value (remove) at position v
if T.isExternal (v)
return null
if k < key(v)
delete (k , T.Left(v))
else if k > key (v)
delete (k , T.Right(v))
{
else
if T.Left(v) = null and T.Right(v) = null
![Page 46: CPE261702 ALGORITHM ANALYSIS & DESIGN PRESENTATION TOPIC IN MAP](https://reader035.vdocument.in/reader035/viewer/2022062800/56814073550346895dabf1e1/html5/thumbnails/46.jpg)
Implement AVL Tree Algorithm
46Master of Computer Engineering Chiangmai University
value = T.getValue
T. Remove(k,v)
T.put (null,v)
Return (value)
else if T.Left(v) = null
temp = node(v)
node(v) = T.Right(v)
Remove temp
else if T.Right(v) = null
temp = node(v)
node(v) = T.Left(v)
Remove temp
![Page 47: CPE261702 ALGORITHM ANALYSIS & DESIGN PRESENTATION TOPIC IN MAP](https://reader035.vdocument.in/reader035/viewer/2022062800/56814073550346895dabf1e1/html5/thumbnails/47.jpg)
Implement AVL Tree Algorithm
47Master of Computer Engineering Chiangmai University
else
tempnode = findmin(T.Right(v))
node.data = tempnode.data
delete(node.data,T.Right(v))
}
if T is balancce
Return ()
else
Rebalancing Tree
![Page 48: CPE261702 ALGORITHM ANALYSIS & DESIGN PRESENTATION TOPIC IN MAP](https://reader035.vdocument.in/reader035/viewer/2022062800/56814073550346895dabf1e1/html5/thumbnails/48.jpg)
Performance & Complexity
48Master of Computer Engineering Chiangmai University
Structure Insertion Searching DeletionDoubly link-List O(1) O(n) O(n)
Hash Table O(1) O(1) O(1)Trie O(dm) O(dm) O(dm)
AVL Tree O(log n) O(log n) O(log n)
* d = size of alphabet m = size of the string parameter of the operation
![Page 49: CPE261702 ALGORITHM ANALYSIS & DESIGN PRESENTATION TOPIC IN MAP](https://reader035.vdocument.in/reader035/viewer/2022062800/56814073550346895dabf1e1/html5/thumbnails/49.jpg)
Thank you
49Master of Computer Engineering Chiangmai University