我目前正在学习链表,我已经发现了编码它的基础知识,我完全理解它们。但是,我预设了一定数量的节点,因此用户将无法添加更多节点。如何实现一个while循环来保持循环并询问用户是否要添加另一条数据。
这是我到目前为止已经拥有的代码:
public class List {
public int x;
public List ptr = null;
}
以上是列表的对象类。列表包含数据类型 x 和指针。
import javax.swing.JOptionPane;
public class Main {
public static void main(String[] args) {
List front = new List();
front.x = Integer.parseInt(JOptionPane.showInputDialog("Enter a value"));
List l1 = new List();
l1.x = Integer.parseInt(JOptionPane.showInputDialog("Enter a value"));
List l2 = new List();
l2.x = Integer.parseInt(JOptionPane.showInputDialog("Enter a value"));
front.ptr = l1;
l1.ptr = l2;
printNodes(front);
}
public static void printNodes(List p) {
while (p != null) {
System.out.print(p.x + " ");
p = p.ptr;
}
}
}
如您所见,我创建了 3 个节点,但您无法再添加。我想要一些类似的东西:
boolean goAgain = true;
while (goAgain) {
//create a new node
String again = JOptionPane.showInputDialog("Add another node?");
if (!again.equalsIgnoreCase("yes")) {
goAgain = false;
}
}
谢谢!
P.S - 我是高中二年级的学生,请使用我能够理解的词汇。我不会说我是一个Java菜鸟,但我也不是专家。
我会清理您的while
循环以将所有内容包含在一个语句中。但那只是因为我懒。;)
while (!JOptionPane.showInputDialog("Add another node?").equalsIgnoreCase("yes"))
{
//make a new node
}
至于创建新节点的代码,我建议从 Java 具有的List
接口实现您的List
类。你可以在这里阅读它。如果你刚刚开始使用Java,虽然它可能有点难以理解。作为对现有代码的评论:
List front = new List();
front.x = Integer.parseInt(JOptionPane.showInputDialog("Enter a value"));
你并没有完全创建一个新的node
,你只是在创建List
类的新实例。在这种情况下,对象被标记为"正面" 我的建议是阅读更多关于List
如何运作的信息。这是一个很好的例子。