Скачиваний:
13
Добавлен:
01.05.2014
Размер:
3.02 Кб
Скачать
#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;}



};
Соседние файлы в папке Класс Список целых чисел