Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<iostream>
- using namespace std;
- struct el_LIFO
- {
- int x;
- struct el_LIFO* nast;
- };
- struct el_LIFO* push(struct el_LIFO *top, int el)
- {
- //dodanie elementu na stos
- // wartość elementu dodawanego jest w zmiennej el,
- //wskaźnik na wierzchołek stosu jest w zmiennej top
- //wynikiem funkcji jest wskaźnik na nowy wierzchołek stosu
- struct el_LIFO * new_el_LIFO=new struct el_LIFO;
- new_el_LIFO->x=el;
- new_el_LIFO->nast=top;
- return new_el_LIFO;
- }
- struct el_LIFO* pop(struct el_LIFO *top, int *el)
- {
- //zdjęcie elementu ze stos
- // wartość zdjętego elementu jest w zmiennej wskaźnikowej el,
- //wskaźnik na wierzchołek stosu jest w zmiennej top
- //wynikiem funkcji jest wskaźnik na nowy wierzchołek stosu
- struct el_LIFO * temp;
- if(top!=NULL){
- *el=top->x;
- temp=top->nast;
- // free(top);
- return temp;
- }
- else {return NULL;}
- }
- int top_el(struct el_LIFO *top, int *el){
- // funkcja zwracająca element wierzchołkowy stosu, o ile taki istnieje
- // wartość elementu wierzchołkowego jest w zmiennej wskaźnikowej el,
- //wskaźnik na wierzchołek stosu jest w zmiennej top
- //wynikiem funkcji jest wartość 1, gdy stos nie jest pusty i 0 w przeciwnym wypadku
- if (top!=NULL)
- {
- *el=top->x;
- return 1;
- }
- else { return 0;}
- }
- int main()
- {
- struct el_LIFO *top_LIFO=NULL;
- int t,d;
- // if (top_el(top_LIFO,&t)) printf("wierzcholek: %d\n",top_LIFO->x);
- //else printf("Stos pusty.\n");
- // printf("usunieto: %d\n",d);
- //if (top_el(top_LIFO,&t)) printf("wierzcholek: %d\n",top_LIFO->x);
- //else printf("Stos pusty.\n");
- int opcja,liczba;
- for(;;)
- {
- cout<<"\n2.Dodawanie elementu.\n";
- cout<<"\n3.Zdejmowanie elementu.\n";
- cout<<"\n4.Pokaz wierzcholek stosu.\n";
- cout<<"\n5.Pokaz stos.\n";
- cout<<"\n6.Koniec programu.\n";
- cin>>opcja;
- switch(opcja)
- {
- case 1:
- {
- }
- case 2:
- { cout<<"\nJaki element chcesz dodac: ";
- cin>>liczba;
- top_LIFO=push(top_LIFO,liczba);
- break;
- }
- case 3:
- { cout<<"\n Zdjeto element ze stosu\n";
- if (top_LIFO==NULL) cout<<"stos pusty"<<endl;
- else top_LIFO=pop(top_LIFO,&d);
- break;
- }
- case 4:
- {
- if (top_el(top_LIFO,&t))
- cout<<top_LIFO->x<<endl;
- else
- cout<<"Stos pusty.\n";
- break;
- }
- }
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement