All pastes #395157 Raw Edit

lista wskaz

public cpp v1 · immutable
·published 2007-03-14 20:56 UTC
rendered paste body
#include <iostream>using namespace std;struct element {              int wartosc ;       element *nastepny ;       element *poprzedni ;              };class lista {      public:lista(){ inf.glowa=inf.ogon=NULL ;     };void Insertf(int x);void Insert(int x, int p);void Delete(int p);int Locate(int x);void Retrive(int p);void Next(int p);void Previous(int p);void First();void Printlist();void Makenull();private :    struct info{   element *glowa ;   element *ogon ;};      info inf ;      };/////////////////////////////////////////////void lista::Insertf(int x){element *q = new element ;q->wartosc=x ;q->nastepny=NULL ;q->poprzedni=NULL ;if(inf.glowa==NULL)    inf.glowa=inf.ogon=q;else {       q->poprzedni=inf.ogon;       inf.ogon->nastepny=q;       inf.ogon=q;     }//inf.licznik++;     };/////////////////////////////////////////////void lista::Insert(int x, int p){if(inf.glowa==NULL) {Insertf(x); return;}element * wskaznik;wskaznik=inf.glowa ;int i=1;while(i<p && wskaznik->nastepny!=NULL){wskaznik=wskaznik->nastepny ;i++;          }if(i<p) Insertf(x);else {element *q = new element ;q->wartosc=x ;q->nastepny=wskaznik ;q->poprzedni=wskaznik->poprzedni;wskaznik->poprzedni->nastepny=q;wskaznik->poprzedni=q;};};/////////////////////////////////////////////void lista::Delete(int p){if(inf.glowa!=NULL) { int i=1; element * wskaznik ; wskaznik=inf.glowa ; while(i<p && wskaznik->nastepny!=NULL) {    wskaznik=wskaznik->nastepny ;    i++;           };if(wskaznik->nastepny==NULL && i!=p) return;else {if(wskaznik->poprzedni==NULL) {inf.glowa=wskaznik->nastepny; delete wskaznik;}else {     wskaznik->poprzedni->nastepny=wskaznik->nastepny;if(wskaznik->nastepny==NULL) {inf.ogon=wskaznik->poprzedni;}delete wskaznik ;};};};};////////////////////////////////////////////void lista::Printlist() {     element *wskaznik ;     if(inf.glowa!=NULL){     wskaznik=inf.glowa;     while(wskaznik->nastepny!=NULL)     {       cout << wskaznik->wartosc << ", ";       wskaznik = wskaznik->nastepny ;                                    }          cout << wskaznik->wartosc << endl ;     }     else cout << "Lista jest pusta" << endl ; };////////////////////////////////////////////int  lista::Locate(int x) {     if(inf.glowa!=NULL) {     element *wskaznik ;     wskaznik=inf.glowa;     int i=1;     while(wskaznik->wartosc!=x && wskaznik->nastepny!=NULL)     {       wskaznik = wskaznik->nastepny ;       i++;                                    }        if(wskaznik->wartosc==x) return i;        else return -1 ;     }          else {cout << "Lista jest pusta" << endl ;      return -1 ;}};////////////////////////////////////////////void lista::Retrive(int p) {     if(inf.glowa!=NULL) {     element *wskaznik;     wskaznik=inf.glowa;     int i=1;     while(i<p && wskaznik->nastepny!=NULL)     {       wskaznik = wskaznik->nastepny ;       i++;                                    }        if(i==p) cout << wskaznik->wartosc << endl;          }          else {cout << "Lista jest pusta" << endl ;      return;}};////////////////////////////////////////////void lista::Next(int p) {     if(inf.glowa!=NULL) {     element *wskaznik ;     wskaznik=inf.glowa;     int i=1;     while(i<p && wskaznik->nastepny!=NULL)     {       wskaznik = wskaznik->nastepny ;       i++;                                    }        if(i==p && wskaznik->nastepny!=NULL) cout << wskaznik->nastepny->wartosc << endl;        else {cout << "Ciemnosc! Widze ciemnosc!"<< endl;}          }          else {cout << "Lista jest pusta" << endl ;      return;}};////////////////////////////////////////////void lista::Previous(int p) {     if(inf.glowa!=NULL) {     element *wskaznik;     wskaznik=inf.glowa;     int i=1;     while(i<p && wskaznik->nastepny!=NULL)     {       wskaznik = wskaznik->nastepny ;       i++;                                    }        if(i==p && wskaznik->poprzedni!=NULL) cout << wskaznik->poprzedni->wartosc << endl;        else {cout << "Ciemnosc! Widze ciemnosc!"<< endl;}          }          else {cout << "Lista jest pusta" << endl ;      return;}};////////////////////////////////////////////void lista::First() {     if(inf.glowa!=NULL) {     cout << inf.glowa->wartosc << endl ;     }          else cout << "Lista jest pusta" << endl ;      return;};/////////////////////////////////////////////void lista::Makenull() {     if(inf.glowa!=NULL) {     element *wskaznik;     wskaznik=inf.ogon;                             while(wskaznik->poprzedni!=NULL)     {       wskaznik = wskaznik->poprzedni ;       delete wskaznik->nastepny;     }     inf.glowa=inf.ogon=NULL;      }          cout << "Lista jest pusta" << endl ;      return;};/////////////////////////////////////////////int main(){     lista test ;     test.Insertf(12);     test.Insertf(46);  //  test.Insertf(26);  //   test.Insertf(11);     test.Insert(666,2);     test.Insert(667,77);     test.Printlist();     test.Next(2);     test.First();     test.Makenull();     test.Printlist();          char d;     cin >> d ;};