home *** CD-ROM | disk | FTP | other *** search
/ The Datafile PD-CD 4 / DATAFILE_PDCD4.iso / unix / unixtools / util / h / deque < prev    next >
Text File  |  1992-07-21  |  1KB  |  45 lines

  1. /*      > H.Deque - Deque data type header file */
  2.  
  3. #ifndef __deque_h
  4.  
  5. #define __deque_h
  6.  
  7. struct deque
  8. {
  9.         void *head;     /* pointer to head of deque */
  10.         void *tail;     /* pointer to tail of deque */
  11.         int obj_size;   /* size of one element */
  12. };
  13.  
  14. typedef struct deque *deque;
  15.  
  16. #define Front 1
  17. #define Back  0
  18.  
  19. /* General component routines */
  20.  
  21. deque deq_new (int obj_len);
  22. void deq_free (deque d);
  23. void deq_clear (deque d);
  24. int deq_copy (deque d1, const deque d2);
  25. int deq_equal (const deque d1, const deque d2);
  26. int deq_empty (const deque d);
  27. int deq_size (const deque d);
  28.  
  29. /* Iterator */
  30.  
  31. #define STATUS_CONTINUE 0       /* Continue processing */
  32. #define STATUS_STOP     1       /* Stop processing */
  33. #define STATUS_ERROR    (-1)    /* Error - terminate */
  34.  
  35. int deq_iterate (const deque d, int (*process)(void *));
  36.  
  37. /* Deque-specific routines */
  38.  
  39. int deq_add (deque d, int pos, const void *object);
  40. int deq_pop (deque d, int pos);
  41. void *deq_front (const deque d);
  42. void *deq_back (const deque d);
  43.  
  44. #endif
  45.