0

我正在编写一个程序,它使用节点数据结构从用户那里接受名称(字符串),显示名称,然后有选择地删除名称。(我希望输入在一个数组中)。当使用 for 循环输入名称并显示时,程序将询问我要删除什么或从数组中删除什么名称。

这是我的课:

 public class Node
{
    Node next;
    String data;

    public Node (String data)
    {
        this.data = data;
    }
}

程序应该做什么:

假设我在 for 循环中输入了 5 个名称。

Alex, George, Fryon, Storm, Hilbert.

然后当我输入它时,它会显示:

Alex.
George
Fryon
Storm
Hilbert

然后它会问我应该删除什么名字?

(Alex)
George
Fryon
Storm
Hilbert

但我什至不能进入它们。

String[] contestant = new String [MAX];
head = null;

for (int i = 0; i <= 5; i++)
{ 
 System.out.println ("Enter a name:");
 name [0] = stdin.readLine ();

 node = new Node (name [i]);
 node.next = head;
 head = node;
}

如果节点或链表与数组有关,我会感到困惑。我希望将它存储为“节点数组”,使用 for 循环“像数组一样”显示它,然后“像数组一样使用排序删除它”。但它真的很难。

4

2 回答 2

0

写下以下内容:

String name;
Node current = null;

while(true)
{ 
 System.out.println ("Enter a name:");
 name = stdin.readLine ();

if( name.equals("exit") ) break;

 if( current == null ) {
    current = new Node(name);
}
else {
   current.next = new Node(name);
   current = current.next;
}

}
于 2012-12-02T19:41:12.730 回答
0

哇。我自己都很惊讶。

数组是与链表不同的数据结构。我已经用数组编程了很长时间,以至于我没有意识到还有像循环链表这样更有效的数组。

.

于 2012-12-03T22:22:32.763 回答