public class lianxi {
public static void main(String args[]) {
Hero hero1=new Hero(1,"a","A");
Hero hero2=new Hero(2,"b","B");
Hero hero3=new Hero(3,"c","c");
Hero hero4=new Hero(4,"d","d");
Lian s=new Lian();
s.add(hero2);
s.add(hero4);
s.add(hero3);
s.add(hero1);
s.show();
}
}
class Lian{
Hero head=new Hero(0,"","");
public void add(Hero hero) {
Hero temp=head;
while(true) {
if(temp.next==null) {
break;
}
temp=temp.next;
}
temp.next=hero;
hero.pre=temp; //形成双向链表
}
public void show() {
Hero temp=head.next;
while(true) {
if(temp==null) {
break;
}
System.out.println(temp);
temp=temp.next;
}
}
public void updata(Hero hero) { //与单向链表一样
if(head.next==null) {
System.out.println("空");
}
Hero temp=head.next;
boolean flag=false;
while(true) {
if(temp==null) {
break;
}
if(temp.no==hero.no) {
flag=true;
break;
}
temp=temp.next;
}
if(flag) {
temp.name=hero.name;
temp.nickname=hero.nickname;
}
}
}
class Hero{
int no;
String name;
String nickname;
Hero next;
Hero pre; //与单向链表不同点,有返回pre
Hero(int no,String name,String nickname){
this.no=no;
this.name=name;
this.nickname=nickname;
}
public String toString() {
return "Hero [no=" + no + ", name=" + name + ", nickname=" + nickname + "]";
}
}
结果:
Hero [no=2, name=b, nickname=B]
Hero [no=4, name=d, nickname=d]
Hero [no=3, name=c, nickname=c]
Hero [no=1, name=a, nickname=A]