Вы сказали: «Мой профессор хочет, чтобы мы написали программу , используя стеки и очереди ...»
Как говорит @molbdnilo в их комментарии , " Я подозреваю, что целью этого упражнения является то, что вы понимаете разницу между ними. "
Один из самых мощных инструментов в разработке алгоритма для решения проблемы - решить проблему самостоятельно - на бумага . Возьмите лист бумаги и напишите на нем «Стек» и «Очередь».
Stack Queue
----- -----
Теперь давайте возьмем первую букву «палиндрома» и добавим ее к обеим структурам:
Stack Queue
----- -----
p p
Чтобы добавить вторую букву палиндрома, помните, что она помещается в верхнюю часть стека (так что вам нужно будет сдвинуть "p" вниз), но для конец очереди:
Stack Queue
----- -----
a p
p a
Следующая буква в "палиндроме" - это "l" - добавьте ее в обе структуры:
Stack Queue
----- -----
l p
a a
p l
Сделайте это для остальной части слова.
Как только вы закончите - попробуйте снова со словом (или короткой фразой), что является палиндромом. Что ты заметил? Если бы я дал вам только кусочки бумаги, как бы вы использовали их, чтобы решить, какой именно палиндром?
PS
* * есть других (более эффективных) способов проверяя палиндромы, но ваш проф попросил использовать стек и очередь по определенной c причине.
Также - всегда помните, что если вы не знаете, как что-то сделать - ты не можешь научить компьютер это делать. И наоборот, как только вы сделали что-то самостоятельно (на бумаге), маленькими, простыми в описании шагами - кодирование становится намного проще.
Программирование состоит из нескольких шагов. Одним из них является разработка и понимание алгоритма. Отдельным шагом является написание кода для реализации алгоритма. Первый шаг может (и часто делает) занимать больше времени и усилий, чем второй.
Тратить больше времени, не отрывая руки от клавиатуры, чем на клавиатуру - это хорошо TM :)