Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- struct elem {
- char value;
- elem * next;
- };
- // přidá znak 'val' do zásobníku 'head'
- void push (elem ** head, char val) {
- elem * tmp = new elem; // vytvoření nového prvku
- tmp->next = nullptr; // ukazatel zatím nikam neukazuje
- tmp->value = val; // nastavíme hodnotu
- if (*head == nullptr) // je li zásobník prázdný
- *head = tmp; // nastavíme nový prvek na začátek
- else { // není li prázdný
- tmp->next = *head; // nasstavíme nový prvek na začátek
- *head = tmp; // a začátek záobníku na nový prvek
- }
- }
- // odebere znak ze zásobníku, pokud je prázdný vrátí false, pokud ne, vrátí true a v out bude vytažená hodnota
- bool pop (elem ** head, char * out) {
- if (*head == nullptr) // je li zásobník prázdný
- return false; // konec
- else { // není li prázdný
- *out = (*head)->value; // nastavíme výstupní hodnotu
- elem * tmp = *head; // ulozime si prvek který budeme mazat
- *head = (*head)->next; // nastavíme začátek zásobníku na druhý prvek
- delete tmp; // smažeme prvek, který už není potřžeba
- return true; // signalizace uspechu
- }
- }
- int main (void) {
- elem * zasobnik = nullptr; // novy prazdny zasobnik
- char c;
- while (cin.get(c)) { // nacitej znaky dokud je co
- if ( c == '\n') // novy radek znaci koenc vstupu
- break; // konec nacitani
- push(&zasobnik, c); // hazej do zasobniku
- }
- while (pop(&zasobnik, &c)) {
- if ((c >= 'A' && c <= 'Z') || c == ' ') // kontrola znaku, zdali odpovida
- cout << c; // vypsani znaku
- else {
- cout << "chyba"; // narazili jsme na nepovoleny znak
- break; // ukoncime
- }
- }
- cout << '\n';
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement