Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <cstdlib>
- #include <iostream>
- using namespace std;
- struct elem{
- int dane;
- elem* nast;
- };
- void add(elem* &pocz, elem* &kon, int x){
- elem* nowy = new elem; //Tworzymy nowy element
- nowy->dane = x; //Przypisujemy do niego dane
- nowy->nast = NULL; //Nastepny element nie istnieje, wiec NULL
- if(kon != NULL){ //Sprawdzamy czy koniec kolejki istnieje
- kon-> nast = nowy; //Jesli tak, to koniec kolejki = nowy
- kon = nowy;
- }
- else{ //Jezeli koniec nie istnieje
- kon = nowy; //to koniec i poczatek = nowy element
- pocz = nowy;
- }
- }
- int next(elem* &pocz, elem* &kon){
- if(pocz != NULL){ //Sprawdzamy czy w ogole istnieje
- elem * stary = pocz; //Do zmn stary przypisujemy poczatek
- int wynik = stary->dane; //wynik = dane z poczatku kolejki
- if(pocz == kon) kon = NULL; //???
- pocz = stary->nast; //Poczatek = nastepny element w kolejce
- delete stary; //usuwamy
- return wynik; //zwracamy wartosc
- }
- else { return -1; }
- }
- int firstElem(elem* &pocz, elem* &kon){ //Pierwszy element ale bez usuwania
- if(pocz !=NULL){
- return pocz->dane;
- }
- }
- bool isEmpty(elem* &pocz){ //Sprawdzanie czy pusta
- if(pocz == NULL) return true;
- else return false;
- }
- void wyswietlKolejke(elem* &pocz, elem* &kon){ //Bez usuwania
- if(pocz != NULL){ //Sprawdzamy warunek
- elem* tmp = pocz; //do tmp przypisujemy poczatek
- while(tmp != NULL){ //dopoki tmp != null
- cout << tmp->dane << ", "; //to wyswietlamy dane z tmp
- tmp = tmp->nast; //i do tmp przypisujemy nastepny element kolejki
- }
- }
- }
- int main() {
- elem* pocz = NULL;
- elem* kon = NULL;
- elem* pocz2 = NULL;
- elem* kon2 = NULL;
- add(pocz, kon, 1);
- add(pocz, kon, 2);
- add(pocz, kon, 3);
- add(pocz, kon, 4);
- cout << next(pocz, kon) << endl; //1 - sciaglo z kolejki
- cout << next(pocz, kon) << endl; //2 - sciaglo z kolejki
- cout << firstElem(pocz, kon) << endl; //3 - bez usuniecia
- cout << firstElem(pocz, kon) << endl; //3 - bez usuniecia
- wyswietlKolejke(pocz, kon);
- return 0;
- }
Add Comment
Please, Sign In to add comment