16
4.c
16
4.c
@@ -11,12 +11,10 @@ void insert(node **last, int collegeid) {
|
|||||||
node *dst = malloc(sizeof(node));
|
node *dst = malloc(sizeof(node));
|
||||||
dst->collegeid = collegeid;
|
dst->collegeid = collegeid;
|
||||||
|
|
||||||
if (*last == NULL)
|
if (*last == NULL) {
|
||||||
|
dst->next = dst;
|
||||||
*last = dst;
|
*last = dst;
|
||||||
|
} else {
|
||||||
if ((*last)->next == NULL)
|
|
||||||
(*last)->next = dst, dst->next = *last;
|
|
||||||
else {
|
|
||||||
dst->next = (*last)->next;
|
dst->next = (*last)->next;
|
||||||
(*last)->next = dst;
|
(*last)->next = dst;
|
||||||
}
|
}
|
||||||
@@ -25,18 +23,14 @@ void insert(node **last, int collegeid) {
|
|||||||
void delete (node **last) {
|
void delete (node **last) {
|
||||||
node *prev = NULL;
|
node *prev = NULL;
|
||||||
|
|
||||||
if ((*last)->next == NULL)
|
if ((*last)->next == (*last))
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
|
|
||||||
prev = *last;
|
prev = *last;
|
||||||
|
|
||||||
while (prev->next != *last)
|
while (prev->next != *last)
|
||||||
prev = prev->next;
|
prev = prev->next;
|
||||||
|
|
||||||
if (prev->next->next == prev)
|
prev->next = (*last)->next;
|
||||||
prev->next = NULL;
|
|
||||||
else
|
|
||||||
prev->next = (*last)->next;
|
|
||||||
|
|
||||||
cleanup:
|
cleanup:
|
||||||
free(*last);
|
free(*last);
|
||||||
|
Reference in New Issue
Block a user