一个简单程序的错误,谢谢您来纠正

butter0000 2009-02-10 10:58:45
class Node{
int date;
Node next;
}
public class list {


public static void main(String[] args) {

try {
for(int i=0;i <3;i++)

{
Node nd=new Node();
nd.date=i;
nd=nd.next;
System.out.println(nd.date);
}
for(int j=0;j <3;j++)
{
System.out.println(nd.date);
nd=nd.next;
}

} catch (Exception e) {

}

就是想用java来实现一个链表,可是那个对象只能在那个for循环里面有效。在红的for循环就无效了,怎么把这个链表存储下来。然后在哪里都能输出呢?谢谢回答!
...全文
127 点赞 收藏 14
写回复
14 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
HinanaiTenshi 2009-02-10
有基础语法错误,主要是变量的作用范围问题.
回复
wyquan101 2009-02-10
建议lz弄清楚链表的概念,和如何生成一个链表。
百度一下就有。
回复
butter0000 2009-02-10
可是还要存储下他的结构啊。就是还要知道一个数的下一个数是谁。 list可以实现么?
回复
Asinzy 2009-02-10
很简单,楼主把Node nd = new Node()写在一个{}里面了,成为了局部变量,后面肯定访问不了

class Node{
int date;
Node next;
}
public class list {


public static void main(String[] args) {

try {
for(int i=0;i <3;i++)

{
Node nd=new Node();//这里定义,是局部的
nd.date=i;
nd=nd.next;
System.out.println(nd.date);
}
for(int j=0;j <3;j++)
{
System.out.println(nd.date);//这里访问,是不行的
nd=nd.next;
}
} catch (Exception e) {

}
回复
wclszh 2009-02-10
你将错误语句打印出来调试一下,是空指针的错误,你可以参照这样的设计
public class Link {
private Node head;
// private int count;

public Link(){
head=new Node(null);
}

private static class Node{
public Object date;
public Node next;

public Node(Object obj){
this.date=obj;
}
}
然后再添加方法
回复
aaronyy2002 2009-02-10
Node nd=new Node();

第二个循环中nd未定义,编译应该会报错
回复
duhongltz 2009-02-10
Node nd=new Node();
在循环里面定义的变量出了循环就出了范围。后面在引用编译通不过。
回复
NickCheng 2009-02-10
关注!稍后给我的解答!~#
回复
xql80329 2009-02-10
存到list 里面就OK了
list.add(nd);
回复
butter0000 2009-02-10
我感觉那个好像是用LinkList来写,可是我不懂,哪个好心人帮我写下好么,功能跟上面的一样,十分感谢了
回复
butter0000 2009-02-10
我写了这么一个程序

import java.io.*;
import java.util.ArrayList;

public class Point {

public static void main(String[] args) {
BufferedReader br;
ArrayList ar = new ArrayList();
String str;

try {
for (int i = 0; i < 3; i++)

{
br = new BufferedReader(new InputStreamReader(System.in));

str = br.readLine();
ar.add(new Integer(str));

}

} catch (Exception e) {

}
System.out.println(ar.toString());
System.out.println(ar.get(1));

}

}

但是这个是顺序存储,我想要链式的,就是类名.next.这样得出的。
回复
用集合比较不错啊,例如list或者是linkedlist
回复
cantalou 2009-02-10
不是有LinkedList吗
回复
mystery1004 2009-02-10
class Node{
int date;
Node next;
}

public class list {

public static void main(String[] args) {
try {
Node nd = new Node();
for (int i = 0; i < 3; i++) {
//Node nd = new Node();
nd.date = i;
nd.next = nd;
System.out.println("node:"+nd.date);
}
for(int j=0;j <3;j++)
{
System.out.println(nd.date);
nd=nd.next;
}

} catch (Exception e) {

}
}
}

运行结果:
node:0
node:1
node:2
2
2
2
回复
相关推荐
发帖
Java SE
创建于2007-09-28

6.2w+

社区成员

Java 2 Standard Edition
申请成为版主
帖子事件
创建了帖子
2009-02-10 10:58
社区公告
暂无公告