Скачиваний:
32
Добавлен:
01.05.2014
Размер:
2.16 Кб
Скачать
//” ©«: 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);
}
Соседние файлы в папке LAB_1