Вопрос задан 09.08.2018 в 08:48. Предмет Информатика. Спрашивает Котова Алёна.

Реализуйте структуру данных "стек". Напишите программу, содержащую описание стека и моделирующую

работу стека, реализовав все указанные здесь методы. Программа считывает последовательность команд и в зависимости от команды выполняет ту или иную операцию. После выполнения каждой команды программа должна вывести одну строчку. Возможные команды для программы: push n Добавить в стек число n (значение n задается после команды). Программа должна вывести ok. pop Удалить из стека последний элемент. Программа должна вывести его значение. back Программа должна вывести значение последнего элемента, не удаляя его из стека. size Программа должна вывести количество элементов в стеке. clear Программа должна очистить стек и вывести ok. exit Программа должна вывести bye и завершить работу. Гарантируется, что набор входных команд удовлетворяет следующим требованиям: максимальное количество элементов в стеке в любой момент не превосходит 100, все команды pop и back корректны, то есть при их исполнении в стеке содержится хотя бы один элемент.
0 0
Перейти к ответам

Ответы на вопрос

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Гаврик Виталий.
{$R+,S+,Q+} uses  SysUtils; const R=1000;type Mas= array [0..R] of integer;var  a: Mas;  en,n: integer;  x,y,z,q,w: char;function push(n: integer): string;begin  a[en]:=n;  en:=en+1;  push:='ok';end;function pop(): integer;begin  en:=en-1;  pop:=a[en];  a[en]:=0;end;function back(): integer;begin  back:=a[en-1];end;function size(): integer;begin  size:=en;end;function clear(): string;begin  en:=0;  clear:='ok';end;function exit(): string;begin  exit:='bye';end;begin  en:=0;  repeat    read(x);    if x='p' then    begin      read(y);      if y='u' then      begin        read(z,q,w);        readln(n);        writeln(push(n))      end else begin        readln(z);        writeln(pop());      end;    end;    if x='b' then    begin      readln(y,z,q);      writeln(back());    end;    if x='s' then begin      readln(y,z,q);      writeln(size());    end;    if x='c' then begin      readln(y,z,q,w);      writeln(clear());    end;    if x='e' then begin      readln(y,z,q);      writeln(exit());    end;  until x='e';end.
0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Стек - это структура данных, которая работает по принципу "последний вошел, первый вышел" (Last In, First Out, LIFO). Он представляет собой контейнер, в котором можно добавлять элементы только на вершину и удалять только с вершины.

Для реализации стека можно использовать массив или связанный список. В данном случае, для простоты, реализуем стек с помощью массива.

Программа, моделирующая работу стека, будет считывать последовательность команд и выполнять соответствующие операции.

```python class Stack: def __init__(self): self.stack = [] def push(self, n): self.stack.append(n) print("ok") def pop(self): element = self.stack.pop() print(element) def back(self): element = self.stack[-1] print(element) def size(self): print(len(self.stack)) def clear(self): self.stack = [] print("ok") def exit(self): print("bye") exit()

stack = Stack()

while True: command = input().split() if command[0] == "push": stack.push(int(command[1])) elif command[0] == "pop": stack.pop() elif command[0] == "back": stack.back() elif command[0] == "size": stack.size() elif command[0] == "clear": stack.clear() elif command[0] == "exit": stack.exit() ```

В данной программе мы создаем класс Stack, который содержит методы для работы со стеком. В конструкторе инициализируем пустой массив stack.

Метод push добавляет элемент на вершину стека, метод pop удаляет элемент с вершины и выводит его значение, метод back выводит значение последнего элемента без удаления, метод size выводит количество элементов в стеке, метод clear очищает стек, а метод exit выводит "bye" и завершает программу.

В основном цикле программы считываем команды, разделяем их на отдельные части и выполняем соответствующие методы объекта stack в зависимости от команды.

Программа будет работать до тех пор, пока не будет введена команда "exit".

0 0

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос