char rcsid_list[] = "$Id: list.c,v 1.1 1998/12/17 06:36:48 fur%netscape.com Exp $"; #include "b.h" IntList newIntList(x, next) int x; IntList next; { IntList l; l = (IntList) zalloc(sizeof(*l)); assert(l); l->x = x; l->next = next; return l; } List newList(x, next) void *x; List next; { List l; l = (List) zalloc(sizeof(*l)); assert(l); l->x = x; l->next = next; return l; } List appendList(x, l) void *x; List l; { List last; List p; last = 0; for (p = l; p; p = p->next) { last = p; } if (last) { last->next = newList(x, 0); return l; } else { return newList(x, 0); } } void foreachList(f, l) ListFn f; List l; { for (; l; l = l->next) { (*f)(l->x); } } void reveachList(f, l) ListFn f; List l; { if (l) { reveachList(f, l->next); (*f)(l->x); } } int length(l) List l; { int c = 0; for(; l; l = l->next) { c++; } return c; }