これで、Javaのサマーコースを取っています。はい、これはクラス内の課題ですが、私は困惑しており、すでに休憩を取っており、論理エラーが何であるかを理解できないようです。私はリンクリストを使用してスタックを作成します。 OuterクラスとInnerクラスは、UserStackで実装する必要があります。 UserStackは教師が提供するMyStackを実装しています。 StackAppにはメインが格納されています。コンパイルして実行します。これは、整数を入力するように正しく要求します。削除するものがある場合は削除し、表示するものがある場合は覗き見します。しかし、それは常にそれが削除されている、または番号0を表示していると言います。私はtoStringのオーバーライドを行う必要がありますか?私は教授に尋ねたところ、他の生徒のようにGoogleに行くように教えてくれました。Java Stack peekメソッドは、正しい番号の代わりに0を表示します。
MyStack.java
public interface MyStack
{
public void push (int item);
public int pop();
public int peek();
public boolean isEmpty();
}
UserStack.java
import java.util.NoSuchElementException;
public class UserStack implements MyStack
{
private class Node
{
public int value;
public Node link;
public Node(int data)
{
data = value;
}
}
private Node head = null;
public void push (int item)
{
Node newHead = new Node(item);
newHead.link = head;
head = newHead;
}
public int pop()
{
if(isEmpty())
throw new NoSuchElementException();
int tmp = head.value;
head = head.link;
return tmp;
}
public int peek()
{
if(isEmpty())
throw new NoSuchElementException();
int tmp = head.value;
return tmp;
}
public boolean isEmpty()
{
return head == null;
}
}
StackApp.java
import java.util.Scanner;
class StackApp
{
UserStack stack = new UserStack();
public void displayMenu()
{
System.out.println ("1) Add an integer to the list\n" +
"2) Remove last integer entered\n" +
"3) Look at last integer entered\n" +
"0) Exit the program");
System.out.print ("Selection: ");
}
public StackApp()
{
int option;
Scanner input = new Scanner(System.in);
do{
displayMenu();
option = input.nextInt();
switch (option)
{
case 1:
int number;
System.out.println("Enter integer to add: ");
number = input.nextInt();
stack.push(number);
break;
case 2:
int number2 = stack.pop();
System.out.println("Interger removed: " + number2);
break;
case 3:
int number3 = stack.peek();
System.out.println("Next Interger: " + number3);
break;
case 0:
System.out.println("Goodbye");
break;
default:
System.err.println("Unrecongized choice");
break;
}
}while(option != 0);
}
public static void main(String[] args)
{
new StackApp();
}
}
' Node'コンストラクタ: 'data = value;'は 'value = data;'でなければなりません。 –
ありがとうございました。私は月曜日からこれを見つめていて、それに気付かなかった。 – GenCrash10