#include #include typedef struct ll { int value; struct ll*next; } linked_record, *linked_ptr; linked_ptr head = NULL; main() { } linked_ptr lookupList(int v, linked_ptr list) { linked_ptr t = list; while (t != NULL) { if (t->value > v) return NULL; if (t->value == v) return t; t = t->next; } return NULL; } linked_ptr recursiveLookup(int v, linked_ptr list) { if (list == NULL) return NULL; if (list->value == v) return list; if (list->value > v) return NULL; return recursiveLookup(v,list->next); } linked_ptr insertList(int v, linked_ptr list) { linked_ptr s,t; if (list == NULL) { list = (linked_ptr)malloc(sizeof(linked_record)); list->value = v; list->next = NULL; return list; } t = list; s = NULL; while (t != NULL) { if (t->value >= v) { linked_ptr new; new = (linked_ptr)malloc(sizeof(linked_record)); new->value = v; new->next = t; if (s != NULL) s->next = new; list = new; return list; } s = t; t = t->next; } t = (linked_ptr)malloc(sizeof(linked_record)); t->next = NULL; t->value = v; s->next = t; return list; } linked_ptr recursiveInsert(int v, linked_ptr list) { if (list == NULL) { list = (linked_ptr)malloc(sizeof(linked_record)); list->value = v; list ->next = NULL; return list; } if (list->value > v) { linked_ptr t; t = (linked_ptr)malloc(sizeof(linked_record)); t->value = v; t->next = list; return t; } list->next = recursiveInsert(v,list->next); } linked_ptr recursiveDelete(int v, linked_ptr list) { if (list == NULL) return NULL; if (list->value > v) return list; if (list->value == v) { linked_ptr t; t = list; list = list->next; free(t); return list; } list->next = recursiveDelete(v,list->next); }