Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <cstdlib>
- #include <fstream>
- #include <string>
- #include <string.h>
- using namespace std;
- struct element
- {
- element *poprz;
- int dane;
- element *nast;
- };
- void wyswietl_liste(element* gl) {
- element* pom;
- int i=1;
- pom = gl;
- system("CLS");
- if (pom==NULL) cout << "Lista jest pusta...\n";
- else {
- cout<<"Nr elementu Element listy\n";
- while (pom!=NULL)
- {
- cout <<"\t"<<i<<"\t\t"<< pom->dane << "\n";
- pom = pom->nast;
- i++;
- }
- }
- }
- void dodaj_p(element* (&gl)) {
- int i;
- element* pom;
- pom = new element;
- cout << "\nPodaj liczbe calkowita: ";
- cin >> i;
- pom->dane=i;
- pom->poprz=NULL;
- pom->nast = gl;
- if (gl!=NULL) gl->poprz=pom;
- gl = pom;
- }
- void dodaj_k(element* (&gl)) {
- int i;
- element *pom, *pom1;
- pom = new element;
- cout << "\nPodaj liczbe calkowita: ";
- cin >> i;
- pom->dane=i;
- pom->nast=NULL;
- pom->poprz=NULL;
- if (gl==NULL) gl=pom;
- else {
- pom1=gl;
- while (pom1->nast!=NULL) pom1=pom1->nast;
- pom1->nast=pom;
- pom->poprz=pom1;
- }
- }
- void dodaj_sr(element* (&gl)) {
- int n;
- wyswietl_liste(gl);
- cout<<"Podaj nr elementu po ktorym chcesz dodac element: ";
- cin >> n;
- if (n==0) dodaj_p(gl);
- else {
- int i,j;
- element *pom, *pom1;
- pom = new element;
- cout << "\nPodaj liczbe calkowita: ";
- cin >> i;
- pom->dane=i;
- pom->nast=NULL;
- pom->poprz=NULL;
- pom1=gl;
- for (j=1;j<n;j++) pom1=pom1->nast;
- pom->nast=pom1->nast;
- pom1->nast=pom;
- pom->poprz=pom1;
- pom->nast->poprz=pom;
- }
- }
- void usun_p(element* (&gl)) {
- if (gl!=NULL) {
- element* pom;
- pom = gl;
- gl = gl->nast;
- gl->poprz=NULL;
- delete pom;
- }
- }
- void usun_k(element* (&gl)) {
- if (gl!=NULL) {
- if (gl->nast==NULL) delete gl;
- else {
- element* pom;
- pom = gl;
- while (pom->nast->nast!=NULL) pom=pom->nast; // dojscie do przedostatniego elementu listy
- delete pom->nast;
- pom->nast=NULL;
- }
- }
- }
- void usun_sr(element* (&gl)) {
- int n;
- wyswietl_liste(gl);
- cout<<"Podaj nr elementu ktory chcesz usunac: ";
- cin >> n;
- if (n!=0) {
- if (n==1) usun_p(gl);
- else {
- int j;
- element *pom,*pom1;
- pom=gl;
- for (j=1;j<n-1;j++) pom=pom->nast;
- pom1=pom->nast;
- pom->nast=pom->nast->nast;
- pom1->nast->poprz=pom;
- delete pom1;
- }
- }
- }
- void usun_liste(element* (&gl)) {
- element *pom;
- while (gl!=NULL) {
- pom=gl;
- gl=gl->nast;
- delete pom;
- }
- }
- void zapisz_l_plik(element* gl)
- {
- ofstream f;
- f.open("liczby.rob",ios::out);
- element* pom;
- pom = gl;
- while (pom!=NULL)
- {
- f<<pom->dane<< "\n";
- pom = pom->nast;
- }
- f.close();
- /*while(gl!=NULL) bez tego element* pom
- {
- f<<gl->dane<<endl;
- gl=gl->nast;
- }*/
- }
- void odczyt_l_plik(element* (&gl))
- {
- fstream f;
- f.open("liczby.txt", ios::in);
- while(!f.eof())
- {
- element *pom, *pom1;
- pom = new element;
- f>>pom->dane;
- pom->nast=NULL;
- pom->poprz=NULL;
- if (gl==NULL) gl=pom;
- else {
- pom1=gl;
- while (pom1->nast!=NULL) pom1=pom1->nast;
- pom1->nast=pom;
- pom->poprz=pom1;
- }
- }
- wyswietl_liste(gl);
- f.close();
- }
- int ilosc(element* gl)
- {
- element* pom;
- int ilosc=1;
- pom=gl;
- while (pom->nast!=NULL)
- {
- pom=pom->nast;
- ilosc++;
- }
- return ilosc;
- }
- void sortuj_przez_wstawianie(element* (&gl))
- {
- int n=ilosc(gl);
- element *pom;
- pom = gl;
- while (pom->nast!=NULL) pom=pom->nast;
- for (int j=n; j>1; j--)
- {
- int i=1;
- if(pom->dane<pom->poprz->dane)
- {
- int bufor=pom->dane;
- pom->dane=pom->poprz->dane;
- pom->poprz->dane=bufor;
- pom->poprz->nast=pom; //
- }
- while (pom->dane>pom->nast->dane&&pom->nast!=NULL)
- {
- int bufor1=pom->dane;
- pom->dane=pom->nast->dane;
- pom->nast->dane=bufor1;
- pom->nast->poprz=pom; //
- pom=pom->nast;
- i++;
- }
- while (i>0)
- {
- pom=pom->poprz;
- i--;
- }
- }
- gl=pom;
- }
- int main() {
- int w;
- element* glowa_l;
- glowa_l = NULL;
- do {
- system("CLS");
- cout<<"\n1. Wyswietl liste - 1";
- cout<<"\n2. Dodaj na poczatku listy - 2";
- cout<<"\n3. Dodaj na koncu listy - 3";
- cout<<"\n4. Dodaj w srodku listy - 4";
- cout<<"\n5. Usun z poczatku listy - 5";
- cout<<"\n6. Usun z konca listy - 6";
- cout<<"\n7. Usun ze srodka listy - 7";
- cout<<"\n8. Zapisz liste do pliku - 8";
- cout<<"\n9. Odczytaj liste z pliku - 9";
- cout<<"\n10. Posortuj rosnaco - 10";
- cout<<"\n11. Koniec - 11\n\n";
- cin >> w;
- switch(w)
- {
- case 1:
- {
- system("CLS");
- wyswietl_liste(glowa_l);
- system("PAUSE");
- break;
- }
- case 2:
- {
- system("CLS");
- dodaj_p(glowa_l);
- system("PAUSE");
- break;
- }
- case 3:
- {
- system("CLS");
- dodaj_k(glowa_l);
- system("PAUSE");
- break;
- }
- case 4:
- {
- system("CLS");
- dodaj_sr(glowa_l);
- system("PAUSE");
- break;
- }
- case 5:
- {
- system("CLS");
- usun_p(glowa_l);
- system("PAUSE");
- break;
- }
- case 6:
- {
- system("CLS");
- usun_k(glowa_l);
- system("PAUSE");
- break;
- }
- case 7:
- {
- system("CLS");
- usun_sr(glowa_l);
- system("PAUSE");
- break;
- }
- case 8:
- {
- system("CLS");
- zapisz_l_plik(glowa_l);
- system("PAUSE");
- break;
- }
- case 9:
- {
- system("CLS");
- odczyt_l_plik(glowa_l);
- system("PAUSE");
- break;
- }
- case 10:
- {
- system("CLS");
- sortuj_przez_wstawianie(glowa_l);
- system("PAUSE");
- break;
- }
- }
- } while (w!=11);
- usun_liste(glowa_l);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement