私は配列を使ってjavaでスタックデータ構造を書いています。問題は、表示されないユーザーのchar入力をプッシュしようとするときです。問題はこのコードにあります。 Javaの1行から複数のchar入力を受け取ります
public static void preSuf(Stack stack) {
Scanner key = new Scanner(System.in);
System.out.println("enter the values");
while(key.hasNext()){
char c = key.next().charAt(0);
stack.push(c);
}
}
私はそれが動作しますが、それは一度だけを印刷し、itterateをdoesntのwhile(key.hasNext())
if(key.hasNext())
に変更
編集:ここでは、全体のコードは
あるimport java.util.Scanner;
public class Stack {
private int top;
private char[] container;
private int size;
public static int pos = 0;
// constructor
public Stack(int N) {
container = new char[N];
size = N;
top = 0;
}
public boolean isFull() {
return (size == top);
}
public void push(char string) {
if (!isFull()) {
container[top] = string;
top++;
} else {
return;
}
}
public int pop() {
int drop;
drop = container[top - 1];
container[top] = 0;
top--;
return drop;
}
public int peek() {
int drop2;
drop2 = container[top - 1];
return drop2;
}
public void display() {
for (int i = 0; i < container.length; i++) {
if (container[i] != 0) {
System.out.print(container[i]);
}
}
}
public static void preSuf(Stack stack) {
Scanner key = new Scanner(System.in);
System.out.println("enter the values");
while(key.hasNext()){
char c = key.next().charAt(0);
stack.push(c);
}
}
public static void main(String args[]) {
Stack stack = new Stack(3);
preSuf(stack);
stack.display();
stack.display();
System.out.println();
}
}
問題の内容がわかりません。コードが正常に表示されます。各文字がスタックにプッシュされます。 –
それはそれらを印刷しない私は問題が何であるかわからない –