Beruflich Dokumente
Kultur Dokumente
Dynamic Allocation
Linked Lists
// A l l o c a t e s p a c e f o r new node .
newNode = m a l l o c ( s i z e o f ( s t r u c t node ) ) ;
// S e t i n f o r m a t i o n t o be s t o r e d .
( ∗ newNode ) . i n f o = 0 ;
first
...
newNode
n
inserting into a nonempty list
i f ( s e a r c h L i s t ( l i s t , n ) != NULL) {
p r i n t f ( ”%d e x i s t s , add n o t a l l o w e d \n” , n ) ;
return l i s t ;
}
else {
newNode = m a l l o c ( s i z e o f ( s t r u c t node ) ) ;
i f ( newNode == NULL)
p r i n t f ( ” C r e a t i o n o f node f a i l e d \n” ) ;
else {
newNode−>i n f o = n ;
newNode−>n e x t = l i s t ;
}
}
r e t u r n newNode ; // Becomes t h e f i r s t node o f t h e list .
}
first newNode
n
first
a nonmpty list
...
appending to
first endList(first)
...
newNode
n
i f ( p == NULL)
r e t u r n NULL ; // Empty l i n k e d l i s t
w h i l e ( p−>n e x t != NULL)
p = p−>n e x t ;
return p ; // L a s t node o f t h e l i n k e d list
}
first
...