Как исправить функцию стека в Java? [закрыто]JAVA

Программисты JAVA общаются здесь
Ответить
Гость
 Как исправить функцию стека в Java? [закрыто]

Сообщение Гость »

У меня не возникает ошибок в коде, просто функция стека не работает. Только случай 1 выполняется правильно. Случаи 2-4 не дают мне правильного ввода. Кто-нибудь может дать мне совет?
по умолчанию: System.out.println("Неверный выбор. Пожалуйста, выберите правильный вариант."); } System.out.println("\n"); // Добавляем пустые строки до и после меню } } // Функция для отображения содержимого стека сверху вниз public static void topToBottom(Stack stack) { Stack tempStack = новый Stack(); в то время как (!stack.isEmpty()) { int сверху = stack.pop(); System.out.print(top + " "); tempStack.push(вверх); } while (!tempStack.isEmpty()) { stack.push(tempStack.pop()); } Система.out.println(); } // Функция для отображения содержимого стека снизу вверх public static void BottomToTop(Stack stack) { Stack tempStack = новый Stack(); в то время как (!stack.isEmpty()) { двойное дно = stack.pop(); tempStack.push(внизу); } while (!tempStack.isEmpty()) { двойная вершина = tempStack.pop(); System.out.print(top + " "); stack.push(вверх); } Система.out.println(); } // Функция для переворачивания содержимого стека public static voidlipStack(Stack stack) { Stack tempStack = новый Stack(); в то время как (!stack.isEmpty()) { Строковый элемент = stack.pop(); tempStack.push(элемент); } while (!tempStack.isEmpty()) { stack.push(tempStack.pop()); } } // Функция для поиска целевого значения в стеке public static boolean searchStack(Stack stack, int target) { Stack tempStack = новый Stack(); логическое значение найдено = ложь; в то время как (!stack.isEmpty()) { int сверху = stack.pop(); tempStack.push(вверх); если (верх == цель) { найдено = правда; } } while (!tempStack.isEmpty()) { stack.push(tempStack.pop()); } возврат найден; } Я думаю, проблема здесь: }публичный класс testStack {

public static void main(String[] args) { Сканер-сканер = новый сканер(System.in); Stack целоеStack = новый Stack(); Stack doubleStack = новый стек(); Stack stringStack = новый Stack(); в то время как (истина) { System.out.println("-----ГЛАВНОЕ МЕНЮ-----"); System.out.println("1. Проверка функции topToBottom со стеком целых чисел"); System.out.println("2. Проверка функции BottomToTop с двойным стеком"); System.out.println("3. Проверка функцииlipStack со стеком строк"); System.out.println("4. Тестовая функция searchStack со стеком целых чисел"); System.out.println("5. Выход из программы"); System.out.print("Введите свой выбор: "); выбор int = Scanner.nextInt(); сканер.nextLine(); // Используем символ новой строки переключатель (выбор) { Дело 1: System.out.print("Введите целые числа для помещения в стек (через пробелы): "); String[] intInput = Scanner.nextLine().split(" "); for (String num: intInput) { целоеStack.push(Integer.parseInt(num)); } System.out.print("Содержимое стека: "+integerStack.toString()); System.out.print("Выход функции: "); topToBottom(integerStack); перерыв; случай 2: System.out.print("Введите значения типа double для помещения в стек (через пробелы): "); String[] doubleInput = Scanner.nextLine().split(" "); for (String num: doubleInput) { doubleStack.push(Double.parseDouble(num)); } System.out.println("Содержимое стека: " + doubleStack.toString()); System.out.print("Выход функции: "); BottomToTop(doubleStack); перерыв; случай 3: System.out.print("Введите строки для помещения в стек (через пробелы): "); String[] stringInput = Scanner.nextLine().split(" "); for (String str: stringInput) { stringStack.push(str); } System.out.println("Содержимое стека перед вызовом FlipStack: " + stringStack); FlipStack (stringStack); System.out.println("Содержимое стека после вызоваlipStack: " + stringStack); перерыв; случай 4: System.out.print("Введите целые числа для помещения в стек (через пробелы): "); String[] intInput2 = Scanner.nextLine().split(" "); for (String num: intInput2) { целоеStack.push(Integer.parseInt(num)); } System.out.println("Содержимое стека: " + целоеStack); System.out.print("Введите целевое значение для поиска: "); int target = Scanner.nextInt(); сканер.nextLine(); // Используем символ новой строки System.out.print("Вывод функции: " + searchStack(integerStack, target)); перерыв; случай 5: System.out.println("Выход из программы."); сканер.закрыть(); Система.выход(0); перерыв; введите код сюда Содержимое стека для случаев 2–4 неверно. это для хз. это требования: Спроектируйте и реализуйте в программе Java следующие функции:
[*]
topToBottom(Stack stack) (10pts): эта функция принимает стек целых чисел в качестве параметра и отображает содержимое стека от верха стека до низа. стек. Верхнее значение должно быть напечатано первым, а нижнее значение должно быть напечатано последним. Эта функция не должна изменять содержимое стека.
[*]
bottomToTop(Stack stack) (10 баллов): эта функция принимает стек двойных значений в качестве параметра и отображает содержимое стека снизу вверх. стека. Нижнее значение должно быть напечатано первым, а верхнее значение должно быть напечатано последним. Эта функция не должна изменять содержимое стека.
[*]
flipStack(Stack stack) (15 баллов): эта функция принимает стек строк в качестве параметра и возвращает тот же объект стека с перевернутым (переупорядоченным) содержимым. ). Другими словами, содержимое стека должно быть перевернуто. Например, если стек names имеет значения (сверху вниз): «Эд», «Том», «Боб», «Эми» перед вызовом этой функции, стек должен иметь значения (сверху вниз): «Эми», «Боб», «Том», «Эд» после выполнения функции.
[*]
searchStack(Stack stack, int target) (15 баллов):: Эта функция принимает два параметра: стек целых чисел и целочисленное целевое значение. Он должен возвращать true, если целевое значение находится в любом месте стека; в противном случае он должен вернуть false. Эта функция не должна изменять содержимое стека.

Напишите метод main как часть вашей Java-программы, чтобы протестировать каждую из перечисленных выше функций. Убедитесь, что ваша программа соответствует данному формату запуска образца. Создайте простое меню, чтобы пользователь мог выбрать и выполнить опцию:
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»