Добавил:
Studfiles2
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Лабораторная работа #1 / LAB_1 / LIST
.CPP//” ©«: LIST.CPP
//Љ« бб "‘ЇЁб®Є". ђҐ «Ё§ жЁп.
//Ђўв®а: ‘ҐаЈҐҐў Њ.‚. Ја.3352
//„ в : 14.03.06, ђҐ¤ ЄжЁп: 1.0
#include<iostream.h>
#include<conio.h>
#include"list.h"
////////////////////////////////////////////////////////////////
CList::CList() //Љ®бвагЄв®а.‘®§¤ вм ®ўл© бЇЁб®Є
{
printf ("\n++++ CList:: ++++\n");
First = NULL;
getch();
}
//////////////////////////////////////////////////////////////////
CList::~CList() //„ҐбвагЄв®а. “з⮦Ёвм бЇЁб®Є
{
printf ("---- ~CList:: ----\n");
getch();
if (First != NULL)
if ((First->GetNext()) == First)
delete First;
else
{
CElem* CurPtr = (First->GetNext());
while (CurPtr != First)
{
CurPtr = CurPtr->GetNext();
delete CurPtr->GetPred();
}
delete First;
}
}
////////////////////////////////////////////////////////////////
void CList::AddElem () //‚бв ўЁвм Ґ«Ґ¬Ґв ў бЇЁб®Є б б®еа ҐЁҐ¬ Ї®ап¤Є Ї«®й ¤Ґ©
{
CElem *NewElPtr = NULL;
NewElPtr = new CElem;
if (First == NULL)
First = NewElPtr;
else
{
if ((NewElPtr->GetData()) <= (First->GetData()))
{
NewElPtr -> SetNext(First);
NewElPtr -> SetPred(First->GetPred());
First->GetPred()->SetNext(NewElPtr);
First ->SetPred(NewElPtr);
First = NewElPtr;
}
else
{
CElem *CurPtr = First;
do
{CurPtr = CurPtr->GetNext();}
while ((CurPtr!=First) && ((NewElPtr->GetData()) > (CurPtr->GetData())));
NewElPtr -> SetNext(CurPtr);
NewElPtr -> SetPred(CurPtr->GetPred());
CurPtr->GetPred()->SetNext(NewElPtr);
CurPtr ->SetPred(NewElPtr);
}
}
//printf ("ќ«Ґ¬Ґв ўбв ў«Ґ\n");
//getch();
}
////////////////////////////////////////////////////////////////
void CList::PrintElems () //‚뢥бвЁ нЄа ўбҐ н«Ґ¬Ґвл бЇЁбЄ
{
int i=0;
CElem* CurPtr = First;
if (CurPtr == NULL)
printf ("‘ЇЁб®Є Їгбв\n");
else
do
{
i++;
printf ("ќ«Ґ¬Ґв ь%d = %d\n",i,CurPtr->GetData());
if (i%24 == 0) getch();
CurPtr = CurPtr->GetNext();
}while (CurPtr!=First);
}