package com.kane.test;
class Mylist{
private int data;
private Mylist next;//设定指向下一个的指针
public Mylist(int x){//为了链表传值
data=x;
}
/**
* 插入
* @param x
*/
public void add(Mylist x) {
x.next=this.next;//新插入的x的后一项是我现在的后一项
next=x;//我的下一项是next
}
/**
* 添加,当然得先找到尾部
* @param x
*/
public void append(Mylist x) {
Mylist p=this;//先找到自己
while (p.next!=null) {
p=p.next;//不停的指向下一个,一直到下一个为null时停
}
p.next=x;//在尾部添加x
}
public void show() {
Mylist p=this;//先找到自己
while (p!=null) {
System.out.println(p.data);
p=p.next;//不停的指向下一个,一直到不为空时
}
}
}
public class LinkList {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Mylist head=new Mylist(10);//定义头结点
head.append(new Mylist(30));
head.append(new Mylist(40));
Mylist mylist=new Mylist(50);
head.append(mylist);
//在10和30间插入20
head.add(new Mylist(20));
head.show();//显示整个链表
}
}
class Mylist{
private int data;
private Mylist next;//设定指向下一个的指针
public Mylist(int x){//为了链表传值
data=x;
}
/**
* 插入
* @param x
*/
public void add(Mylist x) {
x.next=this.next;//新插入的x的后一项是我现在的后一项
next=x;//我的下一项是next
}
/**
* 添加,当然得先找到尾部
* @param x
*/
public void append(Mylist x) {
Mylist p=this;//先找到自己
while (p.next!=null) {
p=p.next;//不停的指向下一个,一直到下一个为null时停
}
p.next=x;//在尾部添加x
}
public void show() {
Mylist p=this;//先找到自己
while (p!=null) {
System.out.println(p.data);
p=p.next;//不停的指向下一个,一直到不为空时
}
}
}
public class LinkList {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Mylist head=new Mylist(10);//定义头结点
head.append(new Mylist(30));
head.append(new Mylist(40));
Mylist mylist=new Mylist(50);
head.append(mylist);
//在10和30间插入20
head.add(new Mylist(20));
head.show();//显示整个链表
}
}