代码如下 :
package 数组;
public class LinkList {//单向链表
public int data;//用来存该节点数据,好写用public,安全用private;
//给个链表不可能有的值
public LinkList next;//用来存储下一个结点;
//增加
public void add(int data) {//头部不存数据
if(next == null ) {//如果下一个数据(next)为null,就给它赋值
next = new LinkList();
next.data = data;
}
else {//有值(不为空),就让next去调用add方法,添加值。(从尾部插入)
next.add(data);
}
}
//删除
public void delete(int data) {
if(next == null)//如果下一个为空,程序退出;
return;
LinkList temp = next;
if(temp.data == data) {
next = temp.next;//
temp.next = null;
}
else {
next.delete(data);//不满足以后在执行delete方法,继续if判断,直到找到
}
}
//查找
public LinkList find(int data) {
if(next == null)
return new LinkList();
if(next.data == data) {
return next;
}
else {
return next.find(data);
}
}
//更新
public void updata(int data,int newData) {
LinkList find = find(data);
find.data = newData;
}
@Override
public String toString() {
return "LinkList [data=" + data + ", next=" + next + "]";
}
}
测试类代码:
package 数组;
public class LinkListTest {
public static void main(String[] args) {
// TODO Auto-generated method stub
LinkList a = new LinkList();
a.add(5);
a.add(6);
a.add(59);
a.add(-5);
System.out.println(a);
a.delete(6);
System.out.println(a);
LinkList b=a.find(-5);
System.out.println(b);
System.out.println(b.data);
a.updata(5, 500);
System.out.println(a);
}
}