struct item { int key; int data; struct item *next; }; static struct item *head = NULL; void init() { head = NULL; } void printall() { struct item *p; for (p = head; p; p = p->next) printf("%d: %d\n", p->key, p->data); } int search(int key) { struct item *it, *prev; for (it = head; it && it->key < key; it = it->next) prev = it; if (it && it->key == key) return it->data; else return -1; }