int main ( int argc, char *argv[] ) { List* list = list_create ( sizeof ( int ),EqualInt ); int t; ListNode* n; int i; for ( i=0; i<10; ++i ) list_push_back ( list,createInt ( &t,rand() ) ); /*list_foreach(list,printInt);*/ ListIter iter = list_get_iter ( list ); while ( list_iter_hasNext ( iter ) ) { printInt ( list_iter_next ( iter ) ); } printf ( "\n" ); list_pop_back ( list ); list_foreach ( list,incInt ); list_foreach ( list,printInt ); printf ( "\n" ); n = list_find_first_node ( list,createInt ( &t,846930887 ) ); list_erase_node ( list,n ); list_foreach ( list,printInt ); list_delete ( list ); return 0; }
/* ------------------------------------------------------------------------- */ char list_erase_element(struct list_t* list, void* data) { struct list_node_t* current; assert(list); current = list->tail; while(current) { if(current->data == data) { list_erase_node(list, current); return 1; } current = current->next; } return 0; }