【问题标题】:commands invalid debugged @stack queue [closed]命令无效调试@stack队列[关闭]
【发布时间】:2020-09-18 04:00:11
【问题描述】:

我的堆栈程序有问题,我并不真正理解我的错误。我能得到一些帮助吗?每次我尝试运行它时,它都会出现多个错误,并且我对一些事情感到非常困惑。我的错误总共有 60 个错误。 因此整个程序都关闭了。我要做的就是在这个堆栈和队列程序中创建名称。

public class YourStackNB {
private int maxSize;
private long[] stackArray;
private int top;

public YourStackNB(int s) {
  maxSize = s;
  stackArray = new long[maxSize];
  top = -1;
}
public void push(long j) {
  stackArray[++top] = j;}
public long pop() {
 return stackArray[top--];
  }
 public boolean isEmpty() {
  return (top == -1);
}
   public static void main(String[] args) {
  YourStackNB theStack = new YourStackNB();
  Stack<Name> even = new Stack<>();
  theStack.push(dino);
  theStack.push(perry);
  theStack.push(jada);
  theStack.push(holly);
  theStack.push(nori);
  
  while (!theStack.isEmpty()) {
     long value = theStack.pop();
     System.out.print(value);
     System.out.print(" ");
  }
  System.out.println("");
}

 }

【问题讨论】:

  • 我们不是读心术的人:如果您“遇到多个错误并且......对一些事情感到困惑”,您需要告诉我们您遇到了哪些错误以及您对哪些事情感到困惑。
  • edit你的问题添加错误信息和混淆的原因。

标签: java stack queue jgrasp


【解决方案1】:

您正在尝试使用数组来实现堆栈。但是您没有正确使用它。相反,您尝试使用 java.util.Stack 并传递不正确的类型名称。

您正在尝试实现长数据类型堆栈的另一件事。但是你正试图在那里放一些字符串。这些代码不正确

//  Stack<Name> even = new Stack<>();
//  theStack.push(dino);
//  theStack.push(perry);
//  theStack.push(jada);
//  theStack.push(holly);
//  theStack.push(nori);

我可以建议你尝试编写一些基本的java程序,这样你就可以更加了解java语法,它会帮助你更好地思考。

为了您的学习,我正在修复错误,并且可以以更好的方式实现此代码

public class YourStackNB {
private int maxSize;
private long[] stackArray;
private int top;

public YourStackNB(int s) {
  maxSize = s;
  stackArray = new long[maxSize];
  top = -1;
}
public void push(long j) {
  stackArray[++top] = j;}
public long pop() {
 return stackArray[top--];
  }
 public boolean isEmpty() {
  return (top == -1);
}
   public static void main(String[] args) {
  YourStackNB theStack = new YourStackNB(10);

  theStack.push(100);
  theStack.push(200);
  theStack.push(300);
  theStack.push(400);
  theStack.push(500);
//  Stack<Name> even = new Stack<>();
//  theStack.push(dino);
//  theStack.push(perry);
//  theStack.push(jada);
//  theStack.push(holly);
//  theStack.push(nori);
  
  while (!theStack.isEmpty()) {
     long value = theStack.pop();
     System.out.print(value);
     System.out.print(" ");
  }
  System.out.println("");
}

 }
OUTPUT:
    500 400 300 200 100

由于堆栈是后进先出(LIFO),因此它以相反的顺序打印,我们将元素插入其中。

【讨论】:

  • 我看到了我的错误,但问题是,我应该在哪里输入名称?如果我的代码不正确?
  • 名称是String数据类型而不是long数据类型,因此如果你需要放入String数据类型那么你需要实现string的堆栈而不是long。我们可以通过一些方法使用泛型来实现 Stack。但是作为初学者会建议你先实现它的类型。
  • 我会使用 stack.add 吗?我的程序需要名字,我正在尝试自学。
猜你喜欢
  • 1970-01-01
  • 2017-11-20
  • 1970-01-01
  • 2013-02-18
  • 2019-01-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多