home *** CD-ROM | disk | FTP | other *** search
/ C/C++ Users Group Library 1996 July / C-C++ Users Group Library July 1996.iso / vol_400 / 412_01 / src / list / slist.cpp < prev   
Encoding:
C/C++ Source or Header  |  1993-12-27  |  667 b   |  31 lines

  1. #include "list.h"
  2.  
  3. SORTEDLIST_::SORTEDLIST_(int dstr)
  4.     : LIST_(dstr)
  5. {
  6. }
  7.  
  8.  
  9. void SORTEDLIST_::insert(SVOBJECT_ &obj)
  10. {
  11.     LIST_NODE_
  12.         *cur;
  13.  
  14.     if (!head || obj.eval(*(SVOBJECT_ *)head->getdata()) < 0)
  15.         addtohead(obj);
  16.  
  17.     else
  18.     {
  19.         for (cur = head->getnext(); cur; cur = cur->getnext())
  20.             if (obj.eval(*(SVOBJECT_ *)cur->getdata()) <= 0)
  21.             {
  22.                 cur->setprev(new LIST_NODE_(obj, cur, cur->getprev()));
  23.                 cur->getprev()->getprev()->setnext(cur->getprev());
  24.         nodecount++;
  25.                 break;
  26.             }
  27.         if (!cur)
  28.             addtotail(obj);
  29.     }
  30. }
  31.