home *** CD-ROM | disk | FTP | other *** search
/ The C Users' Group Library 1994 August / wc-cdrom-cusersgrouplibrary-1994-08.iso / vol_300 / 347_01 / tavldall.c < prev    next >
C/C++ Source or Header  |  1991-04-27  |  840b  |  33 lines

  1. /*:file:version:date: "%n    V.%v;  %f"
  2.  * "TAVLDALL.C    V.2;  27-Apr-91,12:00:02"
  3.  *
  4.  *  Module : tavl_delete_all(TAVL_TREE)
  5.  *  Purpose: Remove all data nodes, freeing dynamic memory.
  6.  *
  7.  *
  8.  *  Released to PUBLIC DOMAIN
  9.  *
  10.  *                          Bert C. Hughes
  11.  *                          200 N.Saratoga
  12.  *                          St.Paul, MN 55104
  13.  *                          Compuserve 71211,577
  14.  */
  15.  
  16. #include "tavltree.h"
  17. #include "tavlpriv.h"
  18.  
  19. void tavl_delete_all(TAVL_treeptr tree)
  20. {
  21.     register TAVL_nodeptr q;
  22.     register TAVL_nodeptr p = tavl_succ(tavl_reset(tree));
  23.  
  24.     while (p) {
  25.         p = tavl_succ(q = p);
  26.         (*tree->free_item)(q->dataptr);
  27.         (*tree->dealloc)(q);
  28.     }
  29.     /* fix up the head node */
  30.     tree->head->Lbit = THREAD;
  31.     tree->head->Lptr = tree->head;
  32. }
  33.