l i n k e d l i s t s 6 5 1 6 l i n k e d l i s t s

L i n k e d l i s t s ( 6 . 5 , 1 6 ) L i n k - PowerPoint PPT Presentation

L i n k e d l i s t s ( 6 . 5 , 1 6 ) L i n k e d l i s t s I n s e r t i n g a n d r e m o v i n g e l e m e n t s i n t h e m i d d l e o f a d y n a m i c a r r a


  1. L i n k e d l i s t s ( 6 . 5 , 1 6 )

  2. L i n k e d l i s t s I n s e r t i n g a n d r e m o v i n g e l e m e n t s i n t h e m i d d l e o f a d y n a m i c a r r a y t a k e s O ( n ) t i m e ● ( t h o u g h i n s e r t i n g a t t h e e n d t a k e s O ( 1 ) t i m e ) ● ( a n d y o u c a n a l s o d e l e t e f r o m t h e m i d d l e i n O ( 1 ) t i m e i f y o u d o n ' t c a r e a b o u t p r e s e r v i n g t h e o r d e r ) A l i n k e d l i s t s u p p o r t s i n s e r t i n g a n d d e l e t i n g e l e m e n t s f r o m a n y p o s i t i o n i n c o n s t a n t t i m e ● B u t i t t a k e s O ( n ) t i m e t o a c c e s s a s p e c i fj c p o s i t i o n i n t h e l i s t

  3. S i n g l y - l i n k e d l i s t s A s i n g l y - l i n k e d l i s t i s m a d e u p o f n o d e s , w h e r e e a c h n o d e c o n t a i n s : ● s o m e d a t a ( t h e n o d e ' s v a l u e ) ● a l i n k ( r e f e r e n c e ) t o t h e n e x t n o d e i n t h e l i s t c l a s s N o d e < E > { E d a t a ; N o d e < E > n e x t ; }

  4. S i n g l y - l i n k e d l i s t s L i n k e d - l i s t r e p r e s e n t a t i o n o f t h e l i s t [ “ T o m ” , “ D i c k ” , “ H a r r y ” , “ S a m ” ] : L i s t i t s e l f i s j u s t a r e f e r e n c e t o t h e fj r s t n o d e

  5. O p e r a t i o n s o n l i n k e d l i s t s / / I n s e r t i t e m a t f r o n t o f l i s t v o i d a d d F i r s t ( E i t e m ) / / I n s e r t i t e m a f t e r a n o t h e r i t e m v o i d a d d A f t e r ( N o d e < E > n o d e , E i t e m ) / / R e m o v e f i r s t i t e m v o i d r e m o v e F i r s t ( ) / / R e m o v e i t e m a f t e r a n o t h e r i t e m v o i d r e m o v e A f t e r ( N o d e < E > n o d e )

  6. E x a m p l e l i s t S L L i s t < S t r i n g > N o d e < S t r i n g > N o d e < S t r i n g > n e x t = n e x t = h e a d = d a t a = " T o m " d a t a = " D i c k "

  7. E x a m p l e o f a d d F i r s t ( E i t e m ) C a l l i n g : a d d F i r s t ( “ A n n ” ) S L L i s t < S t r i n g > N o d e < S t r i n g > N o d e < S t r i n g > n e x t = n e x t = h e a d = d a t a = " T o m " d a t a = " D i c k " i t e m . n e x t = h e a d ; N o d e < S t r i n g > h e a d = i t e m ; n e x t = d a t a = " A n n " i t e m

  8. E x a m p l e o f a d d A f t e r C a l l i n g : a d d A f t e r ( t o m , “ A n n ” ) S L L i s t < S t r i n g > N o d e < S t r i n g > N o d e < S t r i n g > n e x t = n e x t = h e a d = d a t a = " T o m " d a t a = " D i c k " n o d e N o d e < S t r i n g > next = n e x t = data = d a t a = " A n n " "Ann" i i t t e e m m i t e m . n e x t = n o d e . n e x t ; n o d e . n e x t = i t e m ;

  9. E x a m p l e o f r e m o v e F i r s t C a l l i n g : r e m o v e F i r s t ( ) S L L i s t < S t r i n g > N o d e < S t r i n g > N o d e < S t r i n g > n e x t = n e x t = h e a d = d a t a = " T o m " d a t a = " D i c k " h e a d = h e a d . n e x t ; n o d e t o b e r e m o v e d

  10. E x a m p l e o f r e m o v e A f t e r n o d e t o b e C a l l i n g : r e m o v e A f t e r ( t o m ) r e m o v e d S L L i s t < S t r i n g > N o d e < S t r i n g > N o d e < S t r i n g > n e x t = n e x t = h e a d = d a t a = " T o m " d a t a = " D i c k " n o d e N o d e < S t r i n g > n e x t = d a t a = " A n n " n o d e . n e x t = n o d e . n e x t . n e x t ;

  11. A p r o b l e m I t ' s b a d A P I d e s i g n t o n e e d b o t h a n d a d d F i r s t ( l i k e w i s e a n d a d d A f t e r r e m o v e F i r s t ) : r e m o v e A f t e r ● T w i c e a s m u c h c o d e t o w r i t e – t w i c e a s m a n y p l a c e s t o i n t r o d u c e b u g s ! ● U s e r s o f t h e l i s t l i b r a r y w i l l n e e d s p e c i a l c a s e s i n t h e i r c o d e f o r d e a l i n g w i t h t h e fj r s t n o d e I d e a : a d d a h e a d e r n o d e , a f a k e n o d e t h a t s i t s a t t h e f r o n t o f t h e l i s t b u t d o e s n ' t c o n t a i n a n y d a t a I n s t e a d o f , w e c a n d o a d d F i r s t ( x ) a d d A f t e r ( h e a d e r N o d e , x )

  12. L i s t w i t h h e a d e r n o d e ( 1 6 . 1 . 1 ) I f w e w a n t t o a d d “ A n n ” b e f o r e “ T o m ” , w e c a n d o a d d A f t e r ( h e a d , “ A n n ” ) S L L i s t < S t r i n g > N o d e < S t r i n g > N o d e < S t r i n g > N o d e < S t r i n g > n e x t = n e x t = n e x t = n u l l h e a d = d a t a = d a t a = " T o m " d a t a = " D i c k " Tie h e a d e r n o d e !

  13. D o u b l y - l i n k e d l i s t s I n a s i n g l y - l i n k e d l i s t y o u c a n o n l y g o f o r w a r d s t h r o u g h t h e l i s t : ● I f y o u ' r e a t a n o d e , a n d w a n t t o fj n d t h e p r e v i o u s n o d e , t o o b a d ! O n l y w a y i s t o s e a r c h f o r w a r d f r o m t h e b e g i n n i n g o f t h e l i s t I n a d o u b l y - l i n k e d l i s t , e a c h n o d e h a s a l i n k t o t h e n e x t a n d t h e p r e v i o u s n o d e s Y o u c a n i n O ( 1 ) t i m e : ● g o f o r w a r d s a n d b a c k w a r d s t h r o u g h t h e l i s t ● i n s e r t a n o d e b e f o r e o r a f t e r t h e c u r r e n t o n e ● m o d i f y o r d e l e t e t h e c u r r e n t n o d e Tie “ c l a s s i c ” d a t a s t r u c t u r e f o r s e q u e n t i a l a c c e s s

  14. A d o u b l y - l i n k e d l i s t Tie l i s t i t s e l f E a c h n o d e l i n k s t o l i n k s t o t h e fj r s t t h e n e x t a n d t h e a n d l a s t n o d e s p r e v i o u s n o d e

  15. I n s e r t i o n a n d d e l e t i o n i n d o u b l y - l i n k e d l i s t s S i m i l a r t o s i n g l y - l i n k e d l i s t s , b u t y o u h a v e t o u p d a t e t h e p o i n t e r t o o . p r e v T o d e l e t e t h e c u r r e n t n o d e t h e i d e a i s : n o d e . n e x t . p r e v = n o d e . p r e v ; n o d e . p r e v . n e x t = n o d e . n e x t ; N o d e < S t r i n g > N o d e < S t r i n g > N o d e < S t r i n g > n e x t = n e x t = n e x t = p r e v = p r e v = p r e v = d a t a = “ T o m ” d a t a = " D i c k " d a t a = " A n n "

Recommend


More recommend