package yanhaochen;
public class hello {
public static void main ( String[ ] args) {
HeroNode hero1 = new HeroNode ( 1 , "宋哥" , "及时雨" ) ;
HeroNode hero2 = new HeroNode ( 2 , "龙哥" , "社会" ) ;
HeroNode hero3 = new HeroNode ( 3 , "彪哥" , "帅气" ) ;
HeroNode hero4 = new HeroNode ( 4 , "林冲" , "豹子头" ) ;
SingleLinkedList singleLinkedList = new SingleLinkedList ( ) ;
singleLinkedList. addByorder ( hero1) ;
singleLinkedList. addByorder ( hero4) ;
singleLinkedList. addByorder ( hero2) ;
singleLinkedList. addByorder ( hero3) ;
singleLinkedList. list ( ) ;
HeroNode heroNode = new HeroNode ( 2 , "小王" , "傻逼" ) ;
singleLinkedList. update ( heroNode) ;
System. out. println ( "修改后" ) ;
singleLinkedList. list ( ) ;
singleLinkedList. delt ( 1 ) ;
singleLinkedList. delt ( 2 ) ;
singleLinkedList. delt ( 3 ) ;
System. out. println ( "删除后" ) ;
singleLinkedList. list ( ) ;
}
}
class SingleLinkedList {
private HeroNode head = new HeroNode ( 0 , "" , "" ) ;
public void add ( HeroNode heroNode) {
HeroNode temp = head;
while ( true ) {
if ( temp. next== null) {
break ;
}
temp= temp. next;
}
temp. next= heroNode;
}
public void addByorder ( HeroNode heroNode)
{
HeroNode temp = head;
boolean flag = false ;
while ( true ) {
if ( temp. next== null) {
break ;
}
if ( temp. next. no> heroNode. no) {
break ;
} else if ( temp. next. no== heroNode. no) {
flag= true ;
break ;
}
temp= temp. next;
}
if ( flag) {
System. out. printf ( "编号已经存在%d,不能添加\n" , heroNode. no) ;
} else {
heroNode. next= temp. next;
temp. next= heroNode;
}
}
public void update ( HeroNode newheroNode) {
if ( head. next== null) {
System. out. println ( "链表为空" ) ;
return ;
}
HeroNode temp = head. next;
boolean flag = false ;
while ( true ) {
if ( temp== null) {
break ;
}
if ( temp. no== newheroNode. no) {
flag= true ;
break ;
}
temp= temp. next;
}
if ( flag) {
temp. name= newheroNode. name;
temp. nickname= newheroNode. nickname;
} else {
System. out. printf ( "没有找到%d的节点,不能修改\n" , newheroNode. no) ;
}
}
public void delt ( int no) {
HeroNode temp = head;
boolean flag = false ;
while ( true ) {
if ( temp. next== null) {
break ;
}
if ( temp. next. no== no) {
flag = true ;
break ;
}
temp= temp. next;
}
if ( flag) {
temp. next= temp. next. next;
} else {
System. out. printf ( "要删除的%d节点不存在\n" , no) ;
}
}
public void list ( ) {
if ( head. next== null) {
System. out. println ( "链表为空" ) ;
return ;
}
HeroNode temp = head. next;
while ( true ) {
if ( temp== null) {
break ;
}
System. out. println ( temp) ;
temp= temp. next;
}
}
}
class HeroNode {
public int no;
public String name;
public String nickname;
public HeroNode next;
public HeroNode ( 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 + '\'' +
'}' ;
}
}