home *** CD-ROM | disk | FTP | other *** search
/ AmigActive 6 / AACD06.ISO / AACD / Emulation / Atari800 / list.h < prev    next >
C/C++ Source or Header  |  1997-04-03  |  1KB  |  35 lines

  1. #ifndef LIST_INCLUDED
  2. #define    LIST_INCLUDED
  3.  
  4. typedef struct list_entry
  5. {
  6.   struct list_entry *prev; /*+ Pointer to previous entry +*/
  7.   struct list_entry *next; /*+ Pointer to next entry +*/
  8.   void *data; /*+ Pointer to data item associated with this entry +*/
  9. } ListEntry;
  10.  
  11. typedef struct
  12. {
  13.   ListEntry *head; /*+ Pointer to Entry at Head of List +*/
  14.   ListEntry *tail; /*+ Pointer to Entry at Tail of List +*/
  15.   ListEntry *current; /*+ Pointer to current Entry in List +*/
  16.   ListEntry *prev; /*+ Pointer to next entry following current +*/
  17.   ListEntry *next; /*+ Pointer to next entry following current +*/
  18. } List;
  19.  
  20. List *ListCreate (void);
  21. int ListFree (List *list, void (*func)());
  22. int ListAddHead (List *list, void *data);
  23. int ListAddTail (List *list, void *data);
  24. List *ListMerge (List *list1, List *list2);
  25. void ListSort (List *list, int (*func)());
  26. int ListReset (List *list);
  27. int ListTraverse (List *list, void **entry);
  28. int ListTraverseBck (List *list, void **entry);
  29. int ListDeleteEntry (List *list);
  30. int ListInsertBefore (List *list, void *data);
  31. int ListInsertAfter (List *list, void *data);
  32. int ListSwapEntry (List *list);
  33.  
  34. #endif
  35.