Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //do lifo.cpp
- #include <string.h>
- #include <iostream>
- #include <stdlib.h>
- #include "lifo.h"
- using namespace std;
- /**
- * @brief Zobrazí obsah zásobníka.
- * Slúži len pre potreby zorazenia obsahu celého zásobníka.
- * Funkcia žiadnym spôsobom nemodifikuje zásovník.
- * @param zasobnik odkaz na LIFO
- */
- void show(LIFO &zasobnik) {
- cout<<"|";
- for(int i=0; i<zasobnik.vrchol; i++) {
- cout<<zasobnik.pamat[i]<<"|";
- }
- cout<<endl;
- }
- /**
- * @brief do zásobníka vloží novú hodnotu.
- * @param zasobnik zásobník, do ktorého budeme vladať novú hodnotu.
- * @param x hodnota, ktorú vkladáme do zásobníka.
- * @retval stav zásobníka (@see stav_zasobnika). Pri vkladaní môže nastať prípad: OK, FULL
- */
- stav_zasobnika push(LIFO &zasobnik,double x) {
- if(zasobnik.vrchol<MAX_PAMAT) {
- zasobnik.pamat[zasobnik.vrchol++]=x;
- show(zasobnik);
- } else
- return FULL;
- return OK;
- }
- double pop(LIFO &zasobnik) {
- if(zasobnik.vrchol>0)
- return zasobnik.pamat[--zasobnik.vrchol];
- else
- return EMPTY;
- }
- /*
- int main() {
- LIFO f;
- f.vrchol=0;
- int j, i;
- char vyraz[40];
- char buffer[16];
- cin.getline(vyraz,59);
- double x;
- int N=(int)strlen(vyraz);
- for(i=0; i<N; i++) {
- }
- cout<<pop(f);
- } */
- //do main.cpp
- #include <string.h>
- #include <iostream>
- #include <stdlib.h>
- #include "lifo.h"
- using namespace std;
- int main()
- {
- LIFO f;
- f.vrchol=0;
- int j, i;
- char vyraz[40];
- char buffer[16];
- cin.getline(vyraz,59);
- double x;
- int N=(int)strlen(vyraz);
- for(i=0; i<N; i++)
- {
- }
- push (f,2);
- cout<<pop(f);
- }
- //do lifo.h
- #ifndef LIFO_H_INCLUDED
- #define LIFO_H_INCLUDED
- /** @brief Maximálna kapaita zásobníka LIFO.*/
- #define MAX_PAMAT 20
- /**
- * @brief Enumenrácia pre reprezentáciu stavu zásobníka LIFO.
- */
- typedef enum {
- /** Stav OK. V príapde že vrchol zásobníka je v intervale <0,MAX_PAMAT) */
- OK,
- /** Stav FULL. Môže nastať pri pridávaní položky do zásobníka. Ak vrchol>=MAX_PAMAT */
- FULL,
- /** Stav EMPTY. Môže nastať pri vývere zo zásobníka - pri pokuse o výber z prázdneho zásobníka. */
- EMPTY
- } stav_zasobnika ;
- /**
- * @brief Definícia dátového typu LIFO - zásobník.
- * Zásobník je implementovaný pomocou jednorozmerného poľa celých čísel.
- * Kapacita zásobníka je @see MAX_PAMAT
- */
- typedef struct {
- /** Pole reálnych čísel pre reprezentáciu zásobníka. */
- double pamat[ MAX_PAMAT ];
- /** Index, ktorý obsahuje hodnotu indexu voľného prvku poľa pamat. */
- int vrchol;
- } LIFO;
- void show(LIFO &zasobnik);
- stav_zasobnika push(LIFO &zasobnik,double x);
- double pop(LIFO &zasobnik);
- #endif // LIFO_H_INCLUDED
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement