-3

我对Java真的很陌生,开始自己研究它....我下载了netbeans和Eclipse,两者给了我相同的结果..他们不运行代码(卡在运行)也不让我调试它- Eclipse 调试器和 Netbeans - 没有响应:?我没有什么错..我不知道,因为我无法调试..

这是我的代码:我正在尝试检查回文:

package ClassQueue;

class Stack {

    private Object[] Stack_Array = null;
    public int top = 0;

    public Stack(int size) {
        top = 0;
        Stack_Array = new Object[size];
    }

    public Stack() {
        this(100);
    }

    protected void finalizer() {
        Stack_Array = null;
    }

    final public boolean empty() {
        return top == 0;
    }

    final public boolean full() {
        return top == Stack_Array.length;
    }

    public void push(Object token) {
        if (!full()) {
            Stack_Array[top] = token;
            top++;
        }
    }

    public Object pop() {
        Object Value_return = -999;
        if (!empty()) {
            Value_return = Stack_Array[top];
            top--;
        }
        return Value_return;
    }
}//end of Class_Stack

class Queue {

    private Object[] Queue_Array = null;
    private int Front = 0;
    private int Rear = 0;

    public Queue(int size) {
        Front = Rear = 0;
        Queue_Array = new Object[size];
    }

    public Queue() {
        this(100);
    }

    protected void finalizer() {
        Front = Rear = 0;
        Queue_Array = null;
    }

    final public boolean empty() {
        return Front == Rear;
    }

    final public boolean full() {
        return Rear == Queue_Array.length;
    }

    public void queueAdd(Object token) {
        if (!full()) {
            Queue_Array[Rear] = token;
            Rear++;
        }
    }

    public Object queueDelete() {
        Object Value_return = -999;
        if (!empty()) {
            Value_return = Queue_Array[Front];
            Front++;
            return Value_return;
        }
        return Value_return;
    }
}//end of Class_Queue

public class ClassQueue {

    public static void main(String[] args) {

        int i = 0;
        String Value_1 = "ABBA";


        Stack Value_1_Stack = new Stack(Value_1.length());
        Queue Value_1_Queue = new Queue(Value_1.length());


        while (i < Value_1.length()) {
            Value_1_Stack.push(Value_1.charAt(i));
            Value_1_Queue.queueAdd(Value_1.charAt(i));
        }

        i = 0;

        while (Value_1_Stack.pop() == Value_1_Queue.queueDelete()) {
            i++;
        }

        if (i == Value_1.length()) {
            System.out.println("Palindrome");
        } else {
            System.out.println("NOT");
        }


    }//end of main
}//end of ClassQueue
4

2 回答 2

6

你在这里有一个无限循环,因为i它永远不会增加:

while (i < Value_1.length()) {
   Value_1_Stack.push(Value_1.charAt(i));
   Value_1_Queue.queueAdd(Value_1.charAt(i));
}

也不要超过的长度String Value_1

while (i < Value_1.length() - 1) {
   Value_1_Stack.push(Value_1.charAt(i));
   Value_1_Queue.queueAdd(Value_1.charAt(i));
   i++;
}

旁白:对变量名使用 Java 命名约定。

于 2013-04-28T18:05:41.410 回答
-1

您不能使用包名的名称创建类。

要运行您的程序,请更改包名称。

对于 ClassQueue,在同一个包中创建另一个 ClassQueue.java 文件。

调试程序:运行>调试

这将为您提供调试更改视图的环境:Window>Show View>Debug

于 2013-04-28T18:44:02.393 回答