S u mmi n g u p B a s i c d a t a s t r u c t u - - PowerPoint PPT Presentation
S u mmi n g u p B a s i c d a t a s t r u c t u - - PowerPoint PPT Presentation
S u mmi n g u p B a s i c d a t a s t r u c t u r e s A r r a y s : g o o d f o r r a n d o m a c c e s s d y n a m i c a r r a y s : r e s i z e a b l e L i n k e d
B a s i c d a t a s t r u c t u r e s
A r r a y s : g
- d
f
- r
r a n d
- m
a c c e s s
- d
y n a m i c a r r a y s : r e s i z e a b l e
L i n k e d l i s t s : g
- d
f
- r
s e q u e n t i a l a c c e s s
- m
a n y v a r i a n t s – d
- u
b l y l i n k e d , e t c .
T r e e s : g
- d
f
- r
h i e r a r c h i c a l d a t a
- s
p e c i a l c a s e : b i n a r y t r e e s
G r a p h s : g
- d
f
- r
c y c l i c d a t a
- m
a n y v a r i a n t s : w e i g h t e d , d i r e c t e d , e t c .
S
- m
e d a t a s t r u c t u r e s a r e s p e c i a l
I n m a c h i n e l a n g u a g e , t h e m e m
- r
y i s a n a r r a y
- f
i n t e g e r s
- T
- t
h e p r
- c
e s s
- r
, e v e r y t h i n g i s a n a r r a y
I n i m p e r a t i v e l a n g u a g e s , t h e m e m
- r
y i s a n
- b
j e c t g r a p h w i t h r e f e r e n c e s b e i n g e d g e s
- T
- a
n i m p e r a t i v e l a n g u a g e , e v e r y t h i n g i s a g r a p h (
- r
a n a r r a y )
I n f u n c t i
- n
a l l a n g u a g e s , a n y a l g e b r a i c d a t a t y p e i s a k i n d
- f
t r e e ( c f . L i s p S
- e
x p r e s s i
- n
s )
- T
- a
f u n c t i
- n
a l l a n g u a g e , e v e r y t h i n g i s a t r e e (
- r
a f u n c t i
- n
)
E v e r y t h i n g e l s e i s b u i l t f r
- m
w h a t e v e r p r i m i t i v e d a t a s t r u c t u r e s y
- u
r p r
- g
r a m m i n g l a n g u a g e s u p p
- r
t s
B a s i c A D T s
Ma p s : m a i n t a i n a k e y / v a l u e r e l a t i
- n
s h i p
- A
n a r r a y i s a s
- r
t
- f
m a p w h e r e t h e k e y s a r e a r r a y i n d i c e s
S e t s : l i k e a m a p b u t w i t h
- n
l y k e y s , n
- v
a l u e s Q u e u e : a d d t
- n
e e n d , r e m
- v
e f r
- m
t h e
- t
h e r S t a c k : a d d a n d r e m
- v
e f r
- m
t h e s a m e e n d D e q u e : a d d a n d r e m
- v
e f r
- m
e i t h e r e n d P r i
- r
i t y q u e u e : a d d , r e m
- v
e m i n i m u m
I m p l e m e n t i n g m a p s a n d s e t s
A b i n a r y s e a r c h t r e e
- G
- d
p e r f
- r
m a n c e i f y
- u
c a n k e e p i t b a l a n c e d
- H
a s g
- d
r a n d
- m
a n d s e q u e n t i a l a c c e s s : t h e b e s t
- f
b
- t
h w
- r
l d s
A h a s h t a b l e
- V
e r y f a s t i f y
- u
c h
- s
e a g
- d
h a s h f u n c t i
- n
A l i n k e d l i s t ? ?
- .
. . p r e t t y b a d
- b
u t u s e d i n t h e “ c h a i n s ” i n a h a s h t a b l e
I m p l e m e n t i n g q u e u e s , s t a c k s , p r i
- r
i t y q u e u e s
Q u e u e s :
- a
l i n k e d l i s t
- a
c i r c u l a r a r r a y
- a
p a i r
- f
l i s t s ( i n a f u n c t i
- n
a l l a n g u a g e )
S t a c k s :
- a
l i n k e d l i s t
- a
d y n a m i c a r r a y
P r i
- r
i t y q u e u e s :
- a
b i n a r y h e a p
- a
l e f t i s t h e a p
W h a t w e h a v e s t u d i e d
Tie d a t a s t r u c t u r e s a n d A D T s a b
- v
e + a l g
- r
i t h m s t h a t w
- r
k
- n
t h e s e d a t a s t r u c t u r e s ( s
- r
t i n g , D i j k s t r a ' s , e t c . ) + c
- m
p l e x i t y
D a t a s t r u c t u r e d e s i g n
H
- w
t
- d
e s i g n y
- u
r
- w
n d a t a s t r u c t u r e s ?
- Tii
s t a k e s p r a c t i c e !
S t u d y
- t
h e r p e
- p
l e ' s i d e a s :
- h
t t p : / / e n . w i k i p e d i a .
- r
g / w i k i / L i s t _
- f
_ d a t a _ s t r u c t u r e s
- B
- k
: P r
- g
r a m m i n g P e a r l s
- B
- k
: P u r e l y F u n c t i
- n
a l D a t a S t r u c t u r e s
- S
t u d y y
- u
r f a v
- u
r i t e l a n g u a g e ' s s t a n d a r d l i b r a r y
D a t a s t r u c t u r e d e s i g n
F i r s t , i d e n t i f y w h a t
- p
e r a t i
- n
s t h e d a t a s t r u c t u r e m u s t s u p p
- r
t
- O
f t e n t h e r e ' s a n e x i s t i n g d a t a s t r u c t u r e y
- u
c a n u s e
- O
r p e r h a p s y
- u
c a n a d a p t a n e x i s t i n g
- n
e ? Tie n d e c i d e
- n
:
- A
r e p r e s e n t a t i
- n
( t r e e , a r r a y , e t c . )
- A
n i n v a r i a n t Tie s e h
- p
e f u l l y d r i v e t h e r e s t
- f
t h e d e s i g n !
D a t a s t r u c t u r e d e s i g n
F i n a l l y , r e m e m b e r t h e F i r s t a n d S e c
- n
d R u l e s
- f
P r
- g
r a m O p t i m i s a t i
- n
:
1 . D
- n
’ t d
- i
t . 2 . ( F
- r
e x p e r t s
- n
l y ! ) : D
- n
’ t d
- i
t y e t .
K e e p t h i n g s s i m p l e !
- N
- p
- i
n t
- p
t i m i s i n g y
- u
r a l g
- r
i t h m s t
- h
a v e O ( l
- g
n ) c
- m
p l e x i t y i f i t t u r n s
- u
t n ≤ 1
- P
r
- fj
l e y
- u
r p r
- g
r a m t
- fj
n d t h e b
- t
t l e n e c k s a r e
- U
s e b i g
- O
c
- m
p l e x i t y t
- g
e t a h a n d l e
- n
p e r f
- r
m a n c e b e f
- r
e y
- u
s t a r t i m p l e m e n t i n g i t
W h a t w e h a v e n ' t h a d t i m e f
- r
A m
- r
t i s e d d a t a s t r u c t u r e s
W e b r i e fm y m e n t i
- n
e d a m
- r
t i s e d c
- m
p l e x i t y :
- e
. g . d y n a m i c a r r a y s
- a
d d i n g a n e l e m e n t n
- r
m a l l y t a k e s O ( 1 ) t i m e
- b
u t
- c
c a s i
- n
a l l y i t c a n t a k e O ( n ) t i m e
- b
u t t h e O ( n ) c a s e h a p p e n s r a r e l y e n
- u
g h t h a t
- n
a v e r a g e a d d i n g a n e l e m e n t t a k e s O ( 1 ) t i m e
- a
n d s
- w
e s a y t h a t i t t a k e s a m
- r
t i s e d O ( 1 ) t i m e
A m
- r
t i s e d c
- m
p l e x i t y
S p l a y t r e e s a r e a b a l a n c e d B S T h a v i n g a m
- r
t i s e d O ( l
- g
n ) c
- m
p l e x i t y
- Tie
t r e e s
- m
e t i m e s b e c
- m
e s u n b a l a n c e d b u t t h i s h a p p e n s r a r e l y e n
- u
g h t h a t t h e a v e r a g e t i m e p e r
- p
e r a t i
- n
i s s t i l l O ( l
- g
n )
S k e w h e a p s a r e a p r i
- r
i t y q u e u e h a v i n g a m
- r
t i s e d O ( l
- g
n ) m e r g e
- S
i m i l a r t
- l
e f t i s t h e a p s b u t s i m p l e r , a n d f a s t e r i n p r a c t i c e !
S e e b
- k
c h a p t e r s 2 1 ( s p l a y t r e e s ) a n d 2 2 ( s k e w h e a p s )
P r
- b
a b i l i s t i c a l g
- r
i t h m s
S
- m
e t i m e s i t h e l p s t
- m
a k e r a n d
- m
c h
- i
c e s
- E
x a m p l e : q u i c k s
- r
t w i t h a r a n d
- m
p i v
- t
h a s e x p e c t e d O ( n l
- g
n ) c
- m
p l e x i t y
P r
- b
a b i l i s t i c a l g
- r
i t h m s a n d d a t a s t r u c t u r e s u s e r a n d
- m
n e s s i n t h e i r i m p l e m e n t a t i
- n
- D
- w
n s i d e : h a r d e r t
- a
n a l y s e , s m a l l c h a n c e
- f
p
- r
p e r f
- r
m a n c e ( b u t i f t h e p r
- b
a b i l i t y i s l
- w
e n
- u
g h . . . )
S k i p l i s t s : a n i c e m a p
- l
i k e d a t a s t r u c t u r e w i t h O ( l
- g
n ) e x p e c t e d c
- m
p l e x i t y R a n d
- m
i s e d s p l a y t r e e : a b a l a n c e d B S T w i t h O ( l
- g
n ) e x p e c t e d c
- m
p l e x i t y
F u n c t i
- n
a l d a t a s t r u c t u r e s
Z i p p e r s : a l l
- w
y
- u
t
- u
p d a t e f u n c t i
- n
a l d a t a s t r u c t u r e s e ffjc i e n t l y
- h
t t p : / / w w w . h a s k e l l .
- r
g / h a s k e l l w i k i / Z i p p e r
F i n g e r t r e e s : a s e q u e n c e d a t a t y p e w i t h a n i m p r e s s i v e l i s t
- f
f e a t u r e s :
- O
( 1 ) a c c e s s n e a r t h e f r
- n
t a n d b a c k
- f
t h e s e q u e n c e
- O
( l
- g
n ) r a n d
- m
a c c e s s
- O
( l
- g
n ) c
- n
c a t e n a t i
- n
a n d s p l i t t i n g
- h
t t p : / / w w w . s
- i
. c i t y . a c . u k / ~ r
- s
s / p a p e r s / F i n g e r T r e e . p d f
- D
a t a . S e q u e n c e i n G H C
L a b d e a d l i n e s
I f y
- u
' v e m i s s e d t h e fj n a l d e a d l i n e f
- r
a l a b , d
- n
' t p a n i c ! O n J u n e t h e 3
r d
I w i l l s i t i n m y
- ffjc
e ( 5 4 6 3 ) f r
- m
1
- 3
a n d y
- u
c a n s h
- w
m e y
- u
r l a b i n p e r s
- n
T h e e x a m 2 6
t h
- f
M a y , 1 4 : – 1 8 : , H ö r s a l s v ä g e n
T h e e x a m
Y
- u
c a n b r i n g a f u s k l a p p , h a n d w r i t t e n
- n
b
- t
h s i d e s 6 q u e s t i
- n
s , t
- p
a s s : a n s w e r 3 q u e s t i
- n
s
- Tie
r e m i g h t b e p a r t s m a r k e d “ f
- r
V G ”
- y
- u
d
- n
' t n e e d t
- a
n s w e r t h
- s
e !
F
- r
a V G :
- A
n s w e r 5 q u e s t i
- n
s
- I
f t h e r e a r e a n y p a r t s m a r k e d “ f
- r
V G ” , y
- u
d
- n
e e d t
- a
n s w e r t h e m !
B e s t p r e p a r a t i
- n
: d
- t
h e e x e r c i s e s , m a k e s u r e y
- u
u n d e r s t a n d t h e l a b s , r e a d t h e s a m p l e e x a m Wh a t y
- u
n e e d t
- k
n
- w
: t h e f
- l
l
- w
i n g !
D a t a s t r u c t u r e s
A r r a y s , d y n a m i c a r r a y s L i n k e d l i s t s ( s i n g l e
- l
i n k e d , d
- u
b l y
- l
i n k e d ) Q u e u e a n d s t a c k i m p l e m e n t a t i
- n
s u s i n g a r r a y s
- r
l i n k e d l i s t s B i n a r y t r e e s , b i n a r y s e a r c h t r e e s , A V L t r e e s , r e d
- b
l a c k t r e e s , 2
- 3
t r e e s
- n
- t
d e l e t i
- n
f
- r
A V L , r e d
- b
l a c k
- r
2
- 3
t r e e s – b u t s t i l l f
- r
p l a i n B S T s !
H a s h t a b l e s
- R
e h a s h i n g , l i n e a r p r
- b
i n g , l i n e a r c h a i n i n g – n
- t
h
- w
t
- c
- n
s t r u c t a g
- d
h a s h f u n c t i
- n
G r a p h s ( w e i g h t e d , u n w e i g h t e d , d i r e c t e d , u n d i r e c t e d ) , a d j a c e n c y l i s t s , a d j a c e n c y m a t r i c e s B i n a r y h e a p s , l e f t i s t h e a p s
A l g
- r
i t h m s
D a t a s t r u c t u r e a l g
- r
i t h m s ( e . g . , l i s t i n s e r t i
- n
, B S T l
- k
u p ) B i n a r y s e a r c h T r e e t r a v e r s a l : i n
- r
d e r , p r e
- r
d e r , p
- s
t
- r
d e r G r a p h a l g
- r
i t h m s :
- b
r e a d t h
- fj
r s t a n d d e p t h
- fj
r s t s e a r c h
- D
i j k s t r a ' s a n d P r i m ' s a l g
- r
i t h m s ( u s i n g a p r i
- r
i t y q u e u e )
S
- r
t i n g a l g
- r
i t h m s
B u b b l e s
- r
t , s e l e c t i
- n
s
- r
t , i n s e r t i
- n
s
- r
t
- I
n
- p
l a c e v e r s i
- n
s
Q u i c k s
- r
t , m e r g e s
- r
t
- S
t r a t e g i e s f
- r
c h
- s
i n g t h e p i v
- t
– fj r s t e l e m e n t , m e d i a n
- f
- t
h r e e , r a n d
- m
i s e d
T h e
- r
y
C
- m
p l e x i t y a n d b i g
- O
n
- t
a t i
- n
- F
- r
i t e r a t i v e a n d r e c u r s i v e f u n c t i
- n
s – b a s i c a l l y , w h a t ' s i n t h e c
- m
p l e x i t y h a n d
- i
n
D a t a s t r u c t u r e i n v a r i a n t s
G
- d