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

Простой стек

17.10.2023, 09:02. Показов 1594. Ответов 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
7404 / 2249 / 360
Регистрация: 10.03.2016
Сообщений: 5,196
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
14432 / 7474 / 1579
Регистрация: 06.09.2009
Сообщений: 27,111
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
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru