(New page: John Ribeiro - Lu 8:30 - 9:20 - Lesson 22 Node * List_serach ( NOde * led, int v ) { while ( ( led != NULL ) && ( ( led->value ) != v ) ) { led = led -> next; } return led; } ...) |
|||
Line 36: | Line 36: | ||
} | } | ||
p->next = n; | p->next = n; | ||
+ | return head; | ||
+ | } | ||
+ | |||
+ | Node * List_delete ( Node * head, int v ) | ||
+ | { | ||
+ | if ( head == NULL ) | ||
+ | { | ||
+ | return NULL; | ||
+ | } | ||
+ | |||
+ | Node * p = head; | ||
+ | |||
+ | while ( ( q != NULL ) && ( ( q->value) != v ) ) | ||
+ | { | ||
+ | p = q; | ||
+ | q = q->next; | ||
+ | } | ||
+ | |||
+ | if ( q != NULL ) | ||
+ | { | ||
+ | p->next = q->next; | ||
+ | free ( q ); | ||
+ | } | ||
+ | |||
return head; | return head; | ||
} | } |
Revision as of 03:34, 3 April 2012
John Ribeiro - Lu 8:30 - 9:20 - Lesson 22
Node * List_serach ( NOde * led, int v ) {
while ( ( led != NULL ) && ( ( led->value ) != v ) ) { led = led -> next; } return led;
}
/* Remember to check if the pointer is equal to NULL. This makes sure that the list exists in the first place. */
Node * List_InsertFront ( Node * head, int v ) {
Node * n = Node_construct(v); n->next = head; return n;
}
Node * List_insertEnd ( Node * head, int v ) {
Node * n = Node_construct(v); if ( head == NULL ) { return n; }
/* If the list is empty create only one node */
Node * p = head;
while ( ( p->next) != NULL ) { p = p -> next; } p->next = n; return head;
}
Node * List_delete ( Node * head, int v ) {
if ( head == NULL ) { return NULL; }
Node * p = head;
while ( ( q != NULL ) && ( ( q->value) != v ) ) { p = q; q = q->next; }
if ( q != NULL ) { p->next = q->next; free ( q ); }
return head;
}