L8

Zadanie 1

#include <cstdlib>

#include <iostream>

using namespace std;

struct Lista{

int dana; //dana w liscie - w tej bedzie to int

Lista *next; //wsk to next element

};

void AddToList(Lista*& head, int Liczba1) //dodawanie elementu na poczatek listy

{

Lista* TMP = new Lista;

TMP->dana = Liczba1; //przesun stary pierwszy element

TMP->next = head;

head = TMP; //nowy 1-wszy element

}

void D(Lista*& head,int a) //odejmowanie elementu o podanej wartosci - a

{

Lista* TMP = new Lista; //zmienna pomocnicza

Lista* first = new Lista; //zmienna pomocnicza przechowujaca wartosc elementu pierwszego

first = head; //first = element pierwszy (head - czolowy)

if (head->dana == a)

{

head = head->next;

}

else{

while(head != NULL)

{

if (head->dana == a)

{

TMP->next = head->next;

free(head);

head = TMP;

}

TMP = head;

head = head->next;

}

head = first;

}

}

void G(const Lista* head)

{

while (head !=NULL)

{

cout << head->dana << " ";

head = head->next;

}

}

int B(Lista*& head,int a,int b) //dodanie el do listy przed el a - zadanym

{

Lista* TMP = new Lista; //zmienna pomocnicza

Lista* NEW = new Lista;

NEW->dana = b; NEW->next = head->next;

Lista* first = new Lista; //zmienna pomocnicza przechowujaca wartosc elementu pierwszego

if(head->dana != a) //zabezpieczenie - czy ni podajemy wartosci head

first = head; //first = element pierwszy (head - czolowy)

else {AddToList(head, b); return 0;}

while (head != NULL)

{

TMP = head->next; //TMP = nastepny element listy

if (TMP->dana == a)

{

NEW->next = head->next;

head->next = NEW;

head = first;

return 0;

}

head = head->next;

}

}

int C(Lista*& head,int a,int b) //dodanie el do listy po el a - zadanym

{

Lista* TMP = new Lista; //zmienna pomocnicza

Lista* NEW = new Lista;

NEW->dana = b; NEW->next = head->next;

Lista* first = new Lista; //zmienna pomocnicza przechowujaca wartosc elementu pierwszego

first = head;

while (head != NULL)

{

if (head->dana == a)

{

NEW->next = head->next;

head->next = NEW;

head = first;

return 0;

}

head = head->next;

}

}

int E(Lista*& head,int a) //przeszukanie listy w celu znalezienia wartosci - a

{

Lista* first = new Lista; //zmienna pomocnicza przechowujaca wartosc elementu pierwszego

first = head;

int j=0;

while (head != NULL)

{

if (head->dana == a)

{

cout<<"znaleziono na pozycji "<<j<<endl;

head = first;

return 0;

}

head = head->next;

j++;

}

cout<<"nie znaleziono"<<endl;

head = first;

return 0;

}

void F(Lista*& head)

{

Lista* first = new Lista; //zmienna pomocnicza przechowujaca wartosc elementu pierwszego

first = head;

int x = 0;

while (head != 0)

{

head = head -> next;

x++;

}

cout<<"lista ma "<<x<<" elementow"<<endl;

head = first;

}

void Pisz()

{

cout<<endl;

cout<<"wprowadz znak:"<<endl;

cout<<"a - aby dodac element listy na poczatek"<<endl;

cout<<"w - aby wyswietlic element listy - podpunkt g "<<endl;

cout<<"b - aby wykonac podpunkt b"<<endl;

cout<<"c - aby wykonac podpunkt c"<<endl;

cout<<"d - aby wykonac podpunkt d"<<endl;

cout<<"e - aby wykonac podpunkt e"<<endl;

cout<<"f - aby wykonac podpunkt f"<<endl;

cout<<"q - aby zakonczyc"<<endl;

cout<<endl;

}

int main(int argc, char *argv[])

{

Lista* head = NULL;

char a = ' ';

int b,c;

while(a!='q')

{

Pisz();

cin>>a;

cout<<endl;

if (a=='a'){cout<<"wprowadz liczbe: ";cin>>b; AddToList(head, b);}

else if (a=='w')G(head);

else if (a=='d'){cout<<"podaj wartosc elementu: ";cin>>b;cout<<endl;D(head,b);}

else if (a=='b'){cout<<"podaj wartosc elementu przed ktory wstawic: ";cin>>b;cout<<endl;

cout<<"podaj wartosc elementu wstawianego: ";cin>>c;cout<<endl;B(head,b,c);}

else if (a=='c'){cout<<"podaj wartosc elementu po ktorym wstawic: ";cin>>b;cout<<endl;

cout<<"podaj wartosc elementu wstawianego: ";cin>>c;cout<<endl;C(head,b,c);}

else if (a=='e'){cout<<"podaj wartosc szukanego elementu: ";cin>>b;cout<<endl;E(head,b);}

else if (a=='f')F(head);

}

system("PAUSE");

return EXIT_SUCCESS;

}

Zadanie 2

#include <cstdlib>

#include <iostream>

using namespace std;

struct Lista{

int dana; //dana w liscie - w tej bedzie to int

Lista *next; //wsk to next element

};

int main(int argc, char *argv[])

{

Lista* head = NULL;

Lista* headZas = new Lista;

Lista* first = new Lista;

int n = 10;

for(int i = 1 ; i <= n ; i++)

{

Lista* TMP = new Lista;

TMP->dana = i;

TMP->next = head;

head = TMP;

}

first = head;

cout<<"lista:"<<endl;

for(int i = 1 ; i <= n ; i++)

{

cout<<head->dana<<" ";

if (i == n) head->next = first; //lista staje sie cykliczna

head = head -> next;

}

head = first;

cout<<endl;

int k = 3;

double c=n;

int j = 0;

while (c > 1)

{

for(int i = 1; i<k;i++)

{

headZas = head;

head = head ->next;

}

headZas ->next = head -> next;

free(head);c--;

head = headZas;

cout<<"lista:"<<endl;

for(int i = 1 ; i <= n ; i++)

{

cout<<head->dana<<" ";

head = head -> next;

}

head = headZas;

head = head ->next;

cout<<endl;

}

cout<<"pozostala liczba:"<<endl;

cout<<head->dana<<endl;

system("PAUSE");

return EXIT_SUCCESS;

}

Zadanie 3

#include <cstdlib>

#include <iostream>

using namespace std;

struct Lista{

int dana; //dana w liscie - w tej bedzie to int

Lista *next; //wsk to next element

};

void AddToList1(Lista*& head, int Liczba1) //dodawanie elementu na poczatek listy

{

Lista* TMP = new Lista;

TMP->dana = Liczba1; //przesun stary pierwszy element

TMP->next = head;

head = TMP; //nowy 1-wszy element

}

void AddToList(Lista*& head, int Liczba1) //dodawanie elementu na poczatek listy

{

Lista* first = new Lista; //zmienna pomocnicza przechowujaca wartosc elementu pierwszego

Lista* pom = new Lista;

first = head; //first = element pierwszy (head - czolowy)

while (head != NULL)

{

pom = head;

head = head -> next;

}

head = pom;

Lista* TMP = new Lista;

TMP->dana = Liczba1;

TMP->next = head->next;

head->next = TMP;

head = first;

}

void B(Lista*& head) //usun pierwszy el

{

int a = 0;

Lista* TMP = new Lista; //zmienna pomocnicza

TMP = head -> next;

free(head);

head = TMP;

}

void F(const Lista* head)

{

while (head !=NULL)

{

cout << head->dana << " ";

head = head->next;

}

}

int E(Lista*& head,int a) //przeszukanie listy w celu znalezienia wartosci - a

{

Lista* first = new Lista; //zmienna pomocnicza przechowujaca wartosc elementu pierwszego

first = head;

int j=0;

while (head != NULL)

{

if (head->dana == a)

{

cout<<"znaleziono na pozycji "<<j<<endl;

head = first;

return 0;

}

head = head->next;

j++;

}

cout<<"nie znaleziono"<<endl;

head = first;

return 0;

}

void C(Lista*& head)

{

Lista* first = new Lista; //zmienna pomocnicza przechowujaca wartosc elementu pierwszego

first = head;

int x = 0;

while (head != 0)

{

head = head -> next;

x++;

}

cout<<"lista ma "<<x<<" elementow"<<endl;

head = first;

}

void D(Lista*& head)

{

if(head == NULL)

cout<<"pusta"<<endl;

else cout<<"nie pusta"<<endl;

}

void Pisz()

{

cout<<endl;

cout<<"wprowadz znak:"<<endl;

cout<<"a - aby dodac element listy na koniec"<<endl;

cout<<"b - aby wykonac podpunkt b"<<endl;

cout<<"c - aby wykonac podpunkt c"<<endl;

cout<<"d - aby wykonac podpunkt d"<<endl;

cout<<"e - aby wykonac podpunkt e"<<endl;

cout<<"f - aby wykonac podpunkt f"<<endl;

cout<<"q - aby zakonczyc"<<endl;

cout<<endl;

}

int main(int argc, char *argv[])

{

Lista* head = NULL;

char a = ' ';

int b,c;

int empty = 0;

while(a!='q')

{

Pisz();

cin>>a;

cout<<endl;

if (a=='a'){cout<<"wprowadz liczbe: ";cin>>b;

if(empty == 0){empty++; AddToList1(head, b);}else {empty++;AddToList(head, b);}}

else if (a=='f')F(head);

else if (a=='b'){empty--; B(head);}

else if (a=='c')C(head);

else if (a=='d')D(head);

else if (a=='e'){cout<<"wprowadz wartosc: ";cin>>b;E(head,b);}

}

system("PAUSE");

return EXIT_SUCCESS;

}


Zadanie 4

#include <cstdlib>

#include <iostream>

using namespace std;

struct Lista{

int dana; //dana w liscie - w tej bedzie to int

Lista *next; //wsk to next element

};

int D(Lista*& head)

{

Lista* first = new Lista; //zmienna pomocnicza przechowujaca wartosc elementu pierwszego

first = head;

int x = 0;

while (head != 0)

{

head = head -> next;

x++;

}

cout<<"lista ma "<<x<<" elementow"<<endl;

head = first;

return x;

}

void Sort(Lista*& head)

{

Lista* pom = new Lista;

Lista* pom1 = new Lista;

Lista* first = new Lista;

Lista* TMP = new Lista;

first = head;

int n = D(head),x =0;

if (n>1){

for (int i = 0 ;i < n-1 ;i++)

{

TMP = head;

head = head -> next;

if (TMP->dana > head->dana)

{

x++;

TMP->next = head -> next;

head->next = TMP;

if (i==0) first = head ;

if (x>1)

{

pom1=head;

head = pom;

head->next = pom1;

head = pom1;

}

pom =head;

head = head->next;

}

}

}

head = first;

}

void AddToList1(Lista*& head, int Liczba1) //dodawanie elementu na poczatek listy

{

Lista* TMP = new Lista;

TMP->dana = Liczba1; //przesun stary pierwszy element

TMP->next = head;

head = TMP; //nowy 1-wszy element

Sort(head);

}

void AddToList(Lista*& head, int Liczba1) //dodawanie elementu na poczatek listy

{

Lista* first = new Lista; //zmienna pomocnicza przechowujaca wartosc elementu pierwszego

Lista* pom = new Lista;

first = head; //first = element pierwszy (head - czolowy)

while (head != NULL)

{

pom = head;

head = head -> next;

}

head = pom;

Lista* TMP = new Lista;

TMP->dana = Liczba1;

TMP->next = head->next;

head->next = TMP;

head = first;

Sort(head);

}

void C(Lista*& head) //usun pierwszy el

{

int a = 0;

Lista* TMP = new Lista; //zmienna pomocnicza

TMP = head -> next;

free(head);

head = TMP;

}

void E(const Lista* head)

{

while (head !=NULL)

{

cout << head->dana << " ";

head = head->next;

}

}

void Pisz()

{

cout<<endl;

cout<<"wprowadz znak:"<<endl;

cout<<"a - aby dodac element do kolejki"<<endl;

cout<<"c - aby wykonac podpunkt c"<<endl;

cout<<"d - aby wykonac podpunkt d"<<endl;

cout<<"e - aby wykonac podpunkt e"<<endl;

cout<<"q - aby zakonczyc"<<endl;

cout<<endl;

}

int main(int argc, char *argv[])

{

Lista* head = NULL;

char a = ' ';

int b,c;

int empty = 0;

while(a!='q')

{

Pisz();

cin>>a;

cout<<endl;

if (a=='a'){cout<<"wprowadz liczbe: ";cin>>b;

if(empty == 0){empty++; AddToList1(head, b);}else {empty++;AddToList1(head, b);}}

else if (a=='c'){empty--; C(head);}

else if (a=='d')D(head);

else if (a=='e')E(head);

}

system("PAUSE");

return EXIT_SUCCESS;

}


Wyszukiwarka

Podobne podstrony:
K4 L8
L8 kalkulacja współczynnikowa xlsx
pattern, wisisz, wydzial informatyki, studia zaoczne inzynierskie, podstawy programowania, l8
M6 Engine Workshop Manual L8 LF L3 1 (2)
l8 (4)
l8(3)
L8
zpdots, wisisz, wydzial informatyki, studia zaoczne inzynierskie, podstawy programowania, l8
L8, Studia Odlewnictwo inż, Materiały Inżynierskie
ulamki, wisisz, wydzial informatyki, studia zaoczne inzynierskie, podstawy programowania, l8
ponadgim m3 L8
strukt~1, wisisz, wydzial informatyki, studia zaoczne inzynierskie, podstawy programowania, l8
szanow, wisisz, wydzial informatyki, studia zaoczne inzynierskie, podstawy programowania, l8
mod3, wisisz, wydzial informatyki, studia zaoczne inzynierskie, podstawy programowania, l8
zpdop, wisisz, wydzial informatyki, studia zaoczne inzynierskie, podstawy programowania, l8
kwadraty, wisisz, wydzial informatyki, studia zaoczne inzynierskie, podstawy programowania, l8
1 3 m2 L8
L8
Zams Wrzyszcz L8

więcej podobnych podstron