Да се въведат в стек n числа и после да се отпечатат те първо в ред обратен на въведения, а после в реда, в който са въведени.
Упътване: За целта използвайте класа за стек, написан от Калоян.
Да се въведат в стек n числа и после да се отпечатат те първо в ред обратен на въведения, а после в реда, в който са въведени.
Упътване: За целта използвайте класа за стек, написан от Калоян.
[c] за С++ програми [/c]
[pascal] за паскал [/pascal]

за Къде се намира точка
за Вмъкване и изтриване на елемент *
за Позицията на X




за Броят на максималните елементи




за Броят на максималните елементи
за Пари за закуска




за Ученици с дадена оценка




за По-големи от средното| П | В | С | Ч | П | С | Н |
|---|---|---|---|---|---|---|
| « февр. | ||||||
| 1 | 2 | |||||
| 3 | 4 | 5 | 6 | 7 | 8 | 9 |
| 10 | 11 | 12 | 13 | 14 | 15 | 16 |
| 17 | 18 | 19 | 20 | 21 | 22 | 23 |
| 24 | 25 | 26 | 27 | 28 | 29 | 30 |
const int N=50; class Stack { public: // ???????? ??? ????? ?? ????? int br; // ????? ?? ?????????? ?? ?????????? ?? ????? int s[N]; Stack(); void copy(Stack &s); bool isEmpty() const; bool isFull() const; bool push(int X); bool pop(int &x); void print() const; }; // ?????????????? ?? ????? Stack::Stack() { br=0; } void Stack::copy(Stack &s) {int a; while(!isEmpty()) { pop(a); s.push(a); } } // ???????? ???? ????? ? ?????? bool Stack::isEmpty() const { return br==0; } // ???????? ???? ????? ? ????? bool Stack::isFull() const { return br==N; } // ????? ?? ???????? ? ????? bool Stack::push(int X) { bool ok = !isFull(); if (ok){ s[br] = X; br++; } return ok; } // ????????? ?? ???????? ?? ????? bool Stack::pop(int &X) { bool ok = !isEmpty(); if (ok) { br--; X = s[br]; } return ok; } // ????? ?? ????? void Stack::print() const { cout<<"top: |"<<br<<"| stack: |"; for(int i=0;i<br;i++) cout<<s[i]<<'|'; cout<<endl; } // ?? ?? ??????? ? ???? n ????? ? ?? ?? ????????? ????, // ????? ?? ??-?????? ?? ?????????? int main(int argc, char *argv[]) { int n; cout<<"Vuvedete n: "; cin>>n; cout<<"Vuvedete chisla:"; Stack stk, stk1; int chislo; for(int i=1; i<=n; i++) { cin>>chislo; stk.push(chislo); } stk.copy(stk1); stk1.print(); stk1.copy(stk); stk.print();#include <cstdlib> #include <iostream> using namespace std; // ?????????? ???? ???????? ? ????? const int N=50; class Stack { public: // ???????? ??? ????? ?? ????? int br; // ????? ?? ?????????? ?? ?????????? ?? ????? int s[N]; Stack(); bool isEmpty() const; bool isFull() const; bool push(int X); bool pop(int &x); void print() const; }; // ?????????????? ?? ????? Stack::Stack() { br=0; } // ???????? ???? ????? ? ?????? bool Stack::isEmpty() const { return br==0; } // ???????? ???? ????? ? ????? bool Stack::isFull() const { return br==N; } // ????? ?? ???????? ? ????? bool Stack::push(int X) { bool ok = !isFull(); if (ok){ s[br] = X; br++; } return ok; } // ????????? ?? ???????? ?? ????? bool Stack::pop(int &X) { bool ok = !isEmpty(); if (ok) { br--; X = s[br]; } return ok; } // ????? ?? ????? void Stack::print() const { cout<<"top: |"<<br<<"| stack: |"; for(int i=0;i<br;i++) cout<<s[i]<<'|'; cout<<endl; } int main ( ) { int n; cout<<"vavedete n:"; cin>>n; // ?????????????? ????? Stack stk; // ????????? ??????? int chislo; for(int i=1; i<=n; i++) { cin>>chislo; stk.push(chislo); } Stack stk1; for(int j=1; j<=n; j++) { stk.pop(chislo); stk1.push(chislo); cout<<chislo<<endl; } for(int j=1; j<=n; j++) { stk1.pop(chislo); } system("pause"); return 0; }Вярно, само при извличането от втория стек трябваше да го отпечатате.