Добавил:
Studfiles2
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:
#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
Соседние файлы в папке Курсовая работа Обмен сообщениями по схеме Клиент-Сервер