home *** CD-ROM | disk | FTP | other *** search
/ Magazyn Amiga 5 / MA_Cover_5.iso / ppc / atari / atari800-0.8.6 / list.h < prev    next >
Encoding:
C/C++ Source or Header  |  1998-05-10  |  1.1 KB  |  33 lines

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