#ifndef CPP004
#define CPP004

#include "List1.h"

void List::tobegin()
{
 current=First;
};

void List::move()
{
 current=(*current).GetNext();
};

void List::add(cColTriangle F)
{
 ListEl* pNewEl;
 pNewEl = new ListEl;
 ListEl* P;
 cColTriangle H;
 (*pNewEl).SetFig(F);
 tobegin();
 int i=1;
 if (N==0)
  {
   First=pNewEl;
   (*pNewEl).SetNext(pNewEl);
  }
 else
 {
  (*First).GetFig(H);
  P=current;
  if (N==1)
  {
   if (H.Square()<F.Square())
    {
     (*current).SetNext(pNewEl);
     (*pNewEl).SetNext(First);
    }
   else
    {
     (*current).SetNext(pNewEl);
     (*pNewEl).SetNext(First);
     First=pNewEl;
    }
  }
  else
  {
   if (F.Square()<H.Square())
    {
     while ( (*current).GetNext() != First)
       move();
     (*pNewEl).SetNext(First);
     First=pNewEl;
     (*current).SetNext(pNewEl);
    }
   else
    {
     while ((H.Square()<F.Square())&&(i<=N))
      {
       P=current;
       move();
       i++;
       (*current).GetFig(H);
      };
     (*pNewEl).SetNext(current);
     (*P).SetNext(pNewEl);
    };
  };

 }
 N++;
 tobegin();

};

void List::del()
{
 ListEl *P;
 ListEl *Pc;
 if (N>0)
 {
  if (N==1)
   {
    delete First;
    First = NULL;
   }
  else
  {
  P=First;
  Pc=(*First).GetNext();
  while (Pc != current)
   {
    P = Pc;
    Pc=(*Pc).GetNext();
   };
  if (current==First)
   First=(*current).GetNext();
  (*P).SetNext( (*current).GetNext() );
  delete Pc;
  }
  N--;
 };
 tobegin();
};


void List::out()
{
 cColTriangle F;
 ListEl *P;
 P=First;
 if (N==0)
  cout<<"empty list";
 else
 {
  do
  {
   (*P).GetFig(F);
   F.out();
   P=(*P).GetNext();
  }while (P!=First);
 }


};


void List::GetCur(cColTriangle &F)
{
 (*current).GetFig(F);
 del();
};


void List::GetInf(cColTriangle &F)
{
 (*current).GetFig(F);
}

int List::GetNum()
{
return N;
}

int List::Empty()
{
return (First == NULL);
}

double List::maxsum()
{
 ListEl *P;
 if (Empty()) return 0;
 else
 {
  P=First;
  while ((*P).GetNext() != First)
   P=(*P).GetNext();
  cColTriangle F;
  (*P).GetFig(F);
  return F.Square();
 }
}

#endif
Соседние файлы в папке Курсовая работа Обмен сообщениями по схеме Клиент-Сервер