C++. Написать программу, которая обязана исполнять последующие операции: Творить стек.

C++. Написать программку, которая обязана исполнять следующие операции: Творить стек. Операцию добавленья стека. Операцию просмотра стека. Операцию удаления частей стека.

Задать свой вопрос
1 ответ
include lt;iostreamgt;
using namespace std;

template lt;typename Tgt;
class Stack

private:
T *p;
int top, length;

public:
Stack(int = 0); // стандартный размер стека - 0
Stack();
void push(T); // добавленье элементом
T pop(); // удаление и возврат элемента
void display(); // отображение стека
;

template lt;typename Tgt;
Stacklt;Tgt;::Stack(int size)

top = -1;
length = size;
if (size == 0)
p = 0;
else
p = new T[length];



template lt;typename Tgt;
Stacklt;Tgt;::Stack()

if (p != 0)
delete [] p;



template lt;typename Tgt;
void Stacklt;Tgt;::push(T elem)

if (p == 0)
cout lt;lt; "Стек нулевого размера" lt;lt; endl;
cout lt;lt; "Введите размер стека: ";
cin gt;gt; length;
p = new T[length];

if ( top == (length - 1) )
cout lt;lt; "\nНе могу дополнить стек элементом " lt;lt; elem lt;lt; ", стек полон" lt;lt; endl;
return;
else
top++;
p[top] = elem;



template lt;typename Tgt;
T Stacklt;Tgt;::pop()

if ( (p == 0) (top == -1) )
cout lt;lt; "Стек пуст, не могу убрать элемент.";
return -1;

T ret = p[top];
top--;
return ret;


template lt;typename Tgt;
void Stacklt;Tgt;::display()

for (int i = 0; i lt;= top; i++)
cout lt;lt; p[i] lt;lt; " ";

cout lt;lt; endl;


int main()

/* сделайте стек так:
Stack lt;intgt; stack1;
Stack lt;chargt; stack2;
где в угловых кавычках - тип, с которым работает стек.
как воспользоваться - глядите заголовок класса.
*/
return 0;
, оставишь ответ?
Имя:*
E-Mail:


Добро пожаловать!

Для того чтобы стать полноценным пользователем нашего портала, вам необходимо пройти регистрацию.
Зарегистрироваться
Создайте собственную учетную запить!

Пройти регистрацию
Авторизоваться
Уже зарегистрированны? А ну-ка живо авторизуйтесь!

Войти на сайт