/* * dlist.h -- dual list data structure * (C)Copyright 1998, 99 by Hiroshi Takekawa * Last Modified: Sat Oct 16 23:41:41 1999. * $Id: dlist.h,v 1.2 1999/10/18 12:26:53 sian Exp $ */ #ifndef _DLIST_H_ #define _DLIST_H_ #include #include #include typedef struct _dlist_data { void *data; struct _dlist_data *prev; struct _dlist_data *next; } Dlist_data; typedef struct _dlist { int ndata; Dlist_data *top; Dlist_data *head; } Dlist; Dlist *dlist_create(void); int dlist_destroy(Dlist *, int); Dlist_data *dlist_add(Dlist *, void *); Dlist_data *dlist_stradd(Dlist *, char *); int dlist_delete(Dlist *, Dlist_data *, int); int dlist_move_to_top(Dlist *, Dlist_data *); Dlist_data *dlist_gettop(Dlist *); Dlist_data *dlist_gethead(Dlist *); int dlist_getndata(Dlist *); #endif