Compare commits

...

1 Commits

74
ds.c
View File

@@ -92,27 +92,22 @@ void
return NULL; return NULL;
} }
for (i = -1, cur = *ll; cur; i++, cur = cur->next) { if (idx == 0) {
if (i + 1 == idx) { rm = *ll;
if (idx == 0) { *ll = rm->next;
rm = cur; } else {
if (!rm) { for (i = -1, cur = *ll; cur; i++, cur = cur->next) {
return NULL; if (idx == i + 1) {
}
*ll = cur->next;
} else {
rm = cur->next; rm = cur->next;
if (!rm) { break;
return NULL;
}
cur->next = cur->next->next;
} }
break;
} }
}
if (!rm) { if (!rm) {
return NULL; return NULL;
}
cur->next = rm->next;
} }
data = rm->data; data = rm->data;
@@ -132,33 +127,28 @@ void
return NULL; return NULL;
} }
for (i = -1, cur = *ll; cur; i++, cur = cur->next) { if (idx == 0) {
if (i + 1 == idx) { rm = *ll;
if (idx == 0) { *ll = rm->next;
rm = cur; if (rm->next) {
if (!rm) { rm->next->prev = NULL;
return NULL; }
} } else {
if (cur->next) { for (i = 0, cur = *ll; cur; i++, cur = cur->next) {
cur->next->prev = NULL; if (i == idx) {
*ll = cur->next; rm = cur;
} break;
} else { }
rm = cur->next;
if (!rm) {
return NULL;
}
cur->next = cur->next->next;
if (cur->next) {
cur->next->prev = cur;
}
}
break;
} }
}
if (!rm) { if (!rm) {
return NULL; return NULL;
}
rm->prev->next = rm->next;
if (rm->next) {
rm->next->prev = rm->prev;
}
} }
data = rm->data; data = rm->data;