读书人

简单的链表有关问题

发布时间: 2012-03-21 13:33:15 作者: rapoo

简单的链表问题
public class LinkList
{
private int data;
private LinkList link;

public LinkList(int data,LinkList link)
{
this.data=data;
this.link=link;
}

public void insertTail(int element)
{
if(link==null)
{
link=new LinkList(element,link);
}
while(link.link!=null)
{
link=link.link;
}
link.link=new LinkList(element,link.link);
}

public static void main(String[] args)
{
LinkList head=new LinkList(1,null);
LinkList cursor=head;
cursor.insertTail(2);
cursor.insertTail(3);
cursor.insertTail(4);
cursor.insertTail(5);

while(head!=null)
{
System.out.println(head.data);
head=head.link;
}
}
}

主要是想在链表末尾插入元素,为什么只打印出1 4 5,而不是1 2 3 4 5

[解决办法]
//插入的时候,错误的改变了link的值,修改后的代码为

//在链表末尾插入数据
void insertTail(int element)
{
LinkList 末尾=this;
while(末尾.link!=null)
末尾=末尾.link;
末尾.link=new LinkList(element,null);
}

//经测试正确输出
1
2
3
4
5

[解决办法]
//运行了 果然是 不过还是不太理解 要多看一下,新手 学习中 呵呵
//感觉只了解j2se后做j2me对java还是不够理解啊
//托 redduke1202 的福,下面是完整代码
/*
* LinkList.java
*
* Created on 2007年2月3日, 下午10:58
*
* To change this template, choose Tools | Template Manager
* and open the template in the editor.
*
*/

/**
*
* @author Administrator
*/
public class LinkList
{

private int data;
private LinkList link;

/** Creates a new instance of LinkList */
public LinkList(int data, LinkList link)
{
this.data = data;
this.link = link;
}

/**
*
* @param element
*/
public void insertTail(int element)
{
LinkList Tail = this;

while(Tail.link != null)
{
Tail = Tail.link;
}

Tail.link = new LinkList(element, null);
}

/**
*
* @param args
*/
public static void main(String args[])
{
LinkList head = new LinkList(1, null);
LinkList cursor = head;
cursor.insertTail(2);
cursor.insertTail(3);
cursor.insertTail(4);
cursor.insertTail(5);

while(head != null)
{
System.out.println( "> > > > > > > > > head.data = " + head.data);
head = head.link;
}
}

}

读书人网 >J2SE开发

热点推荐