Добавил:
Studfiles2
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Лабораторная работа 2 / L1C4LIST
.CPP#ifndef IIIlistcppIII
#define IIIlistcppIII
#include "l1c4list.h"
template <class Typer>
List<Typer>::List()
{
First = NULL;
}
template <class Typer>
void List<Typer>::tobegin()
{
current=First;
};
template <class Typer>
void List<Typer>::move()
{
current=(*current).GetNext();
};
template <class Typer>
void List<Typer>::add(Typer F)
{
ListEl<Typer>* pNewEl;
pNewEl = new ListEl<Typer>;
(*pNewEl).SetFig(F);
if (Empty())
{
First = pNewEl;
(*First).SetNext(First);
}
else
{
ListEl<Typer>* P=First;
ListEl<Typer>* XY=(*First).GetNext();
tobegin();
while ((*P).GetNext() != First)
P = (*P).GetNext();
(*P).SetNext(pNewEl);
(*pNewEl).SetNext(First);
First = pNewEl;
};
tobegin();
};
template <class Typer>
void List<Typer>::del()
{
if (!Empty())
{
if (First == (*First).GetNext())
{
delete First;
First = NULL;
}
else
{
ListEl<Typer> *P=First;
while ((*P).GetNext() != current)
P = (*P).GetNext();
if (current == First)
First = P;
(*P).SetNext((*((*P).GetNext())).GetNext());
delete current;
};
tobegin();
}
};
template <class Typer>
void List<Typer>::out()
{
if (Empty())
cout<<"empty list";
else
{
ListEl<Typer> *P=First;
Typer F;
do
{
(*P).GetFig(F);
F.Out();
P = (*P).GetNext();
}
while (P != First);
};
};
template <class Typer>
void List<Typer>::GetCur(Typer &F)
{
(*current).GetFig(F);
del();
};
template <class Typer>
void List<Typer>::GetInf(Typer &F)
{
(*current).GetFig(F);
}
template <class Typer>
int List<Typer>::Empty()
{
return (First == NULL);
}
template <class Typer>
void List<Typer>::SetInf(const Typer F)
{
(*current).SetFig(F);
}
template <class Typer>
List<Typer>::~List()
{
delete First;
delete current;
}
#endif
Соседние файлы в папке Лабораторная работа 2