Добавил:
Studfiles2
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Класс Список целых чисел / INTLIST
.CPP#include "elem.cpp"
class intlist
{ elem* head; //Ukazatel' na golovu
elem* cur; //Ukazatel' na tekusiy element
int Nel; //Kol-vo elementov
public:
//-Proverka pustoti
int Empty()
{if (head!=0)
{return 0;}
else {return 1;}
}
//-Konstruktor
intlist()
{head=0;cur=0;Nel=0;}
//-Destruktor
~intlist()
{cout<<"Spisok razrushen! "<<endl;getch();}
//-Selectori
void goNext() //-Perehod na sleduyushiy element
{if (Empty()==0)
{if (cur!=0)
{cur=cur->getN();}
else{cout<<"Konec spiska (goNext)"<<endl;}
}else{cout<<"Spisok pust (goNext)"<<endl;}
}
void goFirst() //-Perehod na nachalo spiska
{if (Empty()==0)
{cur=head;}
else{cout<<"Spisok pust (goFirst) "<<endl;}
}
int getV() //-vozvrat znacheniya
{if (Empty()==0)
{if (cur!=0)
{return cur->getV();}
else{cout<<"Spisok pust (getV) "<<endl;}
}else{cout<<"Spisok pust (getV) "<<endl;}
}
elem getEl() //-vozvrat elementa spiska
{if (cur!=0)
{return *cur;}
else{cout<<"Spisok pust (getEl)"<<endl;}
}
int getNel(){return Nel;} //-Vozvrat kol-va elementov
//-Modifikatori
//Vstavka v nachalo
void insFirst(int val0)
{elem* st=head;
head=new elem(val0);
head->setNext(st);
goFirst();
Nel=Nel+1;
if (head->getV()==val0)
{cout<<"Uspesno vstavili v nachalo!!!"<<endl<<
"Znachenie vstavlennogo: "<<head->getV()<<endl;
cout<<"elementov: "<<Nel<<endl;}
else {cout<<"Oblom so vstavkoy v nachalo!!"<<endl;}
}
//Vstavka v konec
void insLast(int val0)
{if (Empty()==1){insFirst(val0);}else{
elem* last=new elem(val0);
last->setNext(0);
goFirst();
for (int i=1;i<Nel;i++)
{goNext();}
cur->setNext(last);
Nel=Nel+1;
goNext();
if (cur->getV()==val0)
{cout<<"Uspesno vstavili v konec!!!"<<endl<<
"Znachenie vstavlennigo: "<<cur->getV()<<endl;
cout<<"elementov: "<<Nel<<endl;}
else {cout<<"Oblom so vstavkoy v konec!!"<<endl;}
goFirst();
}
}
//-Udalenie i ogo elementa
void delel(int nom)
{if (nom<=Nel)
{
if (Empty()==0)
{ if (nom==1)
{elem* del;
del=head;
head=head->getN();
delete(del);
Nel=Nel-1;
}else{
goFirst();
for (int i=1;i<nom-1;i++)
{goNext();}
elem* del;
del=cur->getN();
cur->setNext(del->getN());
Nel=Nel-1;
delete(del);}
}else {cout<<"Spisok pust (delete)"<<endl;}
}else {cout<<"V spiske mense elementov!"<<endl;}
}
//-Operacii
//-vivod spiska
void PrintList()
{
goFirst();
cout<<"kol-vo elementov"<<Nel<<endl;
for (int i=0;i<Nel;i++)
{cout<<" "<<cur->getV();
goNext();}
goFirst();
}
//-Sortirovka
//void SortList()
// {if (Empty()==0)
// {
// }
// else{cout<<"Spisok pust (SortList)!"<<endl;}
};