Форум программистов, компьютерный форум, киберфорум
Python: Решение задач
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 13.10.2023
Сообщений: 51

Простой стек

17.10.2023, 09:02. Показов 1722. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Реализуйте структуру данных "стек". Напишите программу, содержащую описание стека и моделирующую работу стека, реализовав все указанные здесь методы. Программа считывает последовательность команд и в зависимости от команды выполняет ту или иную операцию. После выполнения каждой команды программа должна вывести одну строчку. Возможные команды для программы:

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

Гарантируется, что набор входных команд удовлетворяет следующим требованиям: максимальное количество элементов в стеке в любой момент не превосходит 100, все команды pop и back корректны, то есть при их исполнении в стеке содержится хотя бы один элемент.

Выходные данные
Требуется вывести протокол работы со стеком, по 1 сообщению в строке
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
17.10.2023, 09:02
Ответы с готовыми решениями:

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

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

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

12
17.10.2023, 09:23

Не по теме:

Откуда задания и зачем Вам вообще такая учеба, когда за Вас всё делают участники форума?

0
0 / 0 / 0
Регистрация: 13.10.2023
Сообщений: 51
17.10.2023, 09:24  [ТС]
задания с informatics.msk.ru, а участники не все делают - это 3 задачи из 10, мне нужно просто понять принцип решения
0
17.10.2023, 09:39

Не по теме:

Вы хотели сказать в 3 темах из 16 было по одной Вашей попытке. Причем на информатиксе есть же теория, которой в принципе должно хватать для тех тем, с которыми обратились. Что вообще Вам даст такая "учеба"...

0
0 / 0 / 0
Регистрация: 13.10.2023
Сообщений: 51
17.10.2023, 09:42  [ТС]
в каких 3х темах из 16? у меня вообще закрытый курс без обучения, просто набор задач на 1 неделю
0
Любознательный
 Аватар для YuS_2
7406 / 2256 / 360
Регистрация: 10.03.2016
Сообщений: 5,216
17.10.2023, 09:55
Цитата Сообщение от qwe5n Посмотреть сообщение
в каких 3х темах из 16?
в этих
0
0 / 0 / 0
Регистрация: 13.10.2023
Сообщений: 51
17.10.2023, 10:00  [ТС]
я искал уже, у меня выдает "Извините, нет совпадений. Попробуйте указать другие ключевые слова."
0
9 / 7 / 2
Регистрация: 16.10.2023
Сообщений: 25
17.10.2023, 10:35
Python
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
class Stack:
    def __init__(self):
        self.stack = []
 
    def push(self, n):
        self.stack.append(n)
        return 'ok'
 
    def pop(self):
        if self.size() > 0:
            return self.stack.pop()
        else:
            return 'Стек пуст'
 
    def back(self):
        if self.size() > 0:
            return self.stack[-1]
        else:
            return 'Стек пуст'
 
    def size(self):
        return len(self.stack)
 
    def clear(self):
        self.stack = []
        return 'ok'
 
 
stack = Stack()
while True:
    command = input().split()
    if command[0] == 'exit':
        print('bye')
        break
    elif command[0] == 'push':
        print(stack.push(int(command[1])))
    elif command[0] == 'pop':
        print(stack.pop())
    elif command[0] == 'back':
        print(stack.back())
    elif command[0] == 'size':
        print(stack.size())
    elif command[0] == 'clear':
        print(stack.clear())
Добавлено через 9 минут
Если нужны объяснения то пиши.
0
0 / 0 / 0
Регистрация: 13.10.2023
Сообщений: 51
17.10.2023, 12:29  [ТС]
не проходит тесты
0
9 / 7 / 2
Регистрация: 16.10.2023
Сообщений: 25
17.10.2023, 13:04
Лучший ответ Сообщение было отмечено qwe5n как решение

Решение

Цитата Сообщение от qwe5n Посмотреть сообщение
не проходит тесты
Чего?

Добавлено через 3 минуты
Цитата Сообщение от qwe5n Посмотреть сообщение
не проходит тесты
Python
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
class Stack:
    def __init__(self):
        self.stack = []
 
    def push(self, n):
        self.stack.append(n)
        return 'ok'
 
    def pop(self):
        if self.size() > 0:
            return self.stack.pop()
        else:
            return 'Стек пуст'
 
    def back(self):
        if self.size() > 0:
            return self.stack[-1]
        else:
            return 'Стек пуст'
 
    def size(self):
        return len(self.stack)
 
    def clear(self):
        self.stack = []
        return 'ok'
 
 
stack = Stack()
while True:
    command = input().split()
    if command[0] == 'push':
        print(stack.push(int(command[1])))
    elif command[0] == 'pop':
        print(stack.pop())
    elif command[0] == 'back':
        print(stack.back())
    elif command[0] == 'size':
        print(stack.size())
    elif command[0] == 'clear':
        print(stack.clear())
    elif command[0] == 'exit':
        print('bye')
        break
ну или можно сделать говнокод
Python
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
class Stack:
    def __init__(self):
        self.stack = []
 
    def push(self, n):
        self.stack.append(n)
        return 'ok'
 
    def pop(self):
        return self.stack.pop() if self.stack else 'Стек пуст'
 
    def back(self):
        return self.stack[-1] if self.stack else 'Стек пуст'
 
    def size(self):
        return len(self.stack)
 
    def clear(self):
        self.stack = []
        return 'ok'
 
 
def main():
    stack = Stack()
    commands = {
        'push': stack.push,
        'pop': stack.pop,
        'back': stack.back,
        'size': stack.size,
        'clear': stack.clear
    }
 
    while True:
        command = input().split()
        if command[0] == 'exit':
            print('bye')
            break
        elif command[0] == 'push':
            print(commands[command[0]](int(command[1])))
        else:
            print(commands[command[0]]())
 
if __name__ == "__main__":
    main()
0
0 / 0 / 0
Регистрация: 13.10.2023
Сообщений: 51
17.10.2023, 13:04  [ТС]
решение тесты не проходит, как это еще объяснить?
прошу прощения, страница не прогрузилась
0
9 / 7 / 2
Регистрация: 16.10.2023
Сообщений: 25
17.10.2023, 13:08
Цитата Сообщение от qwe5n Посмотреть сообщение
решение тесты не проходит, как это еще объяснить?
прошу прощения, страница не прогрузилась
Мы написали одновременно
0
Вирусоборец
 Аватар для thyrex
14450 / 7489 / 1582
Регистрация: 06.09.2009
Сообщений: 27,133
17.10.2023, 16:48
Программа считывает всю последовательность команд и только потом выводит результат выполнения каждой - именно так я трактую задание.

Добавлено через 1 минуту
Да и вообще, получив реализацию стека, очередь и дек можно было реализовать самому.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
17.10.2023, 16:48
Помогаю со студенческими работами здесь

Реализовать простой стек, с функциями добавления и удаления элементов
Реализовать простой стек на си, с функциями добавления в стек и удаления из него, а также проверки пустой ли стек.

Сформировать новый стек, состоящий из элементов, входящих в стек L1 но не входящих в стек L2
3) Написать приложение, которое по двум стекам L1, L2 формирует новый стек, состоящий из элементов, входящих в L1 но не входящих в L2 ...

Заполнить очередь и стек и поменять их содержимое местами через дополнительный стек.
Необходимо разработать программу, которая должна : Заполнить очередь и стек и поменять их содержимое местами через дополнительный стек....

Гараж представляет собой стек на n машин. Подъездная дорога - неограниченный стек
Помогите решить задачу или хотя бы подскажите как,пожалуйста 1)Гараж представляет собой стек на n машин. 2)Время приезда одной машины...

Стек. Создать случайно генерированный стек и поменять местами первый элемент с i
Как создать случайно генерированный стек (тип элементов CHAR) и поменять местами первый элемент с i (i - вводит пользователь)?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать контроль заполнения реквизита "ПричинаСписания". . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Программное заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru