如何通过 while 循环继续在我的链表中添加节点



我目前正在学习链表,我已经发现了编码它的基础知识,我完全理解它们。但是,我预设了一定数量的节点,因此用户将无法添加更多节点。如何实现一个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如何运作的信息。这是一个很好的例子。

相关内容

  • 没有找到相关文章

最新更新