@@ -32,6 +32,7 @@ int dlist_insert(struct dlist **l, size_t index, int e)
|
||||
new_node->prev = NULL;
|
||||
new_node->next = *l;
|
||||
new_node->data = e;
|
||||
new_node->next->prev = new_node;
|
||||
|
||||
//dlist_append(*l, e);
|
||||
return 0;
|
||||
@@ -58,19 +59,18 @@ int dlist_insert(struct dlist **l, size_t index, int e)
|
||||
|
||||
return 0;
|
||||
|
||||
|
||||
}
|
||||
|
||||
struct dlist *dlist_delete_at(struct dlist **l, size_t index)
|
||||
{
|
||||
if(!l || *l) return NULL;
|
||||
|
||||
|
||||
struct dlist *old = *l;
|
||||
if(index == 0){
|
||||
|
||||
old->next->prev = NULL;
|
||||
*l = old->next;
|
||||
|
||||
return old;
|
||||
}
|
||||
|
||||
@@ -87,8 +87,10 @@ struct dlist *dlist_delete_at(struct dlist **l, size_t index)
|
||||
old = tmp->next;
|
||||
tmp->prev = old->prev;
|
||||
tmp->next = old->next;
|
||||
|
||||
return old;
|
||||
}
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user