实体类
class DoubleHeroNode {
public int no;
public String name;
public String nickname;
public DoubleHeroNode pre;
public DoubleHeroNode next;
public DoubleHeroNode ( int no, String name , String nickname ) {
this . no = no;
this . name = name;
this . nickname = nickname;
}
@Override
public String toString ( ) {
return "HeroNode{" +
"no=" + no +
", name='" + name + '\'' +
", nickname='" + nickname + '\'' +
'}' ;
}
}
工具类
class DoubleLinkedList {
public void add ( DoubleHeroNode head, DoubleHeroNode heroNode) {
DoubleHeroNode temp = head;
boolean flag = false ;
while ( temp. next != null ) {
if ( temp. no == heroNode. no) {
flag = true ;
return ;
}
temp = temp. next;
}
if ( flag) {
System . out. println ( "您要添加的数据已存在~~" ) ;
} else {
temp. next = heroNode;
heroNode. pre = temp;
}
}
public void addByOrder ( DoubleHeroNode head, DoubleHeroNode heroNode) {
DoubleHeroNode temp = head;
boolean flag = false ;
while ( temp. next != null ) {
if ( temp. next. no > heroNode. no) {
break ;
} else if ( temp. next. no == heroNode. no) {
flag = true ;
}
temp = temp. next;
}
if ( flag) {
System . out. println ( "要插入的数据已存在" ) ;
} else {
if ( temp. next != null ) {
temp. next. pre = heroNode;
heroNode. next = temp. next;
}
temp. next = heroNode;
heroNode. pre = temp;
}
}
public void update ( DoubleHeroNode head, DoubleHeroNode heroNode) {
DoubleHeroNode temp = head. next;
boolean flag = false ;
while ( temp != null ) {
if ( temp. no == heroNode. no ) {
flag = true ;
break ;
}
temp = temp. next;
}
if ( flag) {
temp. name = heroNode. name;
temp. nickname = heroNode. nickname;
} else {
System . out. println ( "未找到要更新的数据!" ) ;
}
}
public void delete ( DoubleHeroNode head, int no) {
DoubleHeroNode temp = head. next;
boolean flag = false ;
while ( temp != null ) {
if ( temp. no == no) {
flag = true ;
break ;
}
temp = temp. next;
}
if ( flag) {
temp. pre. next = temp. next;
if ( temp. next != null ) {
temp. next. pre = temp. pre;
}
} else {
System . out. println ( "未找到要删除的数据!" ) ;
}
}
public void show ( DoubleHeroNode head) {
if ( head. next == null ) {
System . out. println ( "链表为空~" ) ;
return ;
}
DoubleHeroNode temp = head. next;
while ( temp != null ) {
System . out. println ( temp) ;
temp = temp. next;
}
}
}
测试
public class DoubleLinkedListDemo {
private static DoubleHeroNode head = new DoubleHeroNode ( 0 , "" , "" ) ;
public static DoubleLinkedList list = new DoubleLinkedList ( ) ;
public static void main ( String [ ] args) {
DoubleHeroNode heroNode1 = new DoubleHeroNode ( 1 , "宋江" , "及时雨" ) ;
DoubleHeroNode heroNode2 = new DoubleHeroNode ( 2 , "卢俊义" , "玉麒麟" ) ;
DoubleHeroNode heroNode3 = new DoubleHeroNode ( 3 , "吴用" , "智多星" ) ;
DoubleHeroNode heroNode4 = new DoubleHeroNode ( 4 , "林冲" , "豹子头" ) ;
}
}