链表基本介绍
单链表
应用实例
实现代码
package list
;
import java
.beans
.beancontext
.BeanContext
;
import java
.time
.temporal
.Temporal
;
public class SingleListDemo {
public static void main(String
[] args
) {
SingleList singleList
= new SingleList();
singleList
.addLinkByOrder(new HeroLink(2, "宋江", "及时雨"));
singleList
.addLinkByOrder(new HeroLink(1, "鲁智深", "花和尚"));
singleList
.addLinkByOrder(new HeroLink(4, "林冲", "豹子头"));
singleList
.addLinkByOrder(new HeroLink(3, "柴进", "小旋风"));
singleList
.showList();
singleList
.delLinkById(12);
System
.out
.println("删除后:");
singleList
.showList();
}
}
class SingleList {
private HeroLink head
= new HeroLink(0, "", "");
public void addLink(HeroLink heroLink
) {
HeroLink temp
= head
;
while (true) {
if (temp
.next
== null
) {
temp
.next
= heroLink
;
break;
}
temp
= temp
.next
;
}
}
public void addLinkByOrder(HeroLink heroLink
) {
HeroLink temp
= head
;
boolean flag
= false;
while (true) {
if (temp
.next
== null
) {
break;
}
if (heroLink
.id
== temp
.next
.id
) {
flag
= true;
break;
}
if (heroLink
.id
< temp
.next
.id
) {
break;
}
temp
= temp
.next
;
}
if (flag
) {
System
.out
.println("id号重复,不能插入此元素" + heroLink
.id
);
}else {
heroLink
.next
= temp
.next
;
temp
.next
= heroLink
;
}
}
public void updateLink(HeroLink heroLink
) {
boolean flag
= false;
if (head
.next
== null
) {
return;
}
HeroLink temp
= head
.next
;
while (true) {
if (temp
.next
== null
) {
break;
}
if (heroLink
.id
== temp
.next
.id
) {
flag
= true;
break;
}
temp
= temp
.next
;
}
if (flag
) {
temp
.nickName
= heroLink
.nickName
;
}else {
System
.out
.println("没有查到要修改的元素!!!");
}
}
public void showList() {
HeroLink temp
= head
;
if (temp
.next
== null
) {
System
.out
.println("单链表为空");
return;
}
while (true) {
if (temp
.next
== null
) {
break;
}
temp
= temp
.next
;
System
.out
.println(temp
);
}
}
public void delLastLink() {
HeroLink temp
= head
;
if (temp
.next
== null
) {
System
.out
.println("无元素可以删除,链表为空!!!");
return;
}
while (true) {
if (temp
.next
.next
== null
) {
temp
.next
= null
;
break;
}
temp
= temp
.next
;
}
}
public void delLinkById(int id
) {
if (head
.next
== null
) {
System
.out
.println("此链表为空。。");
return;
}
boolean flag
= false;
HeroLink temp
= head
;
while (true) {
if (temp
.next
== null
) {
break;
}
if (temp
.next
.id
== id
) {
flag
= true;
break;
}
temp
= temp
.next
;
}
if (flag
) {
temp
.next
= temp
.next
.next
;
}else
System
.out
.println("没找到此元素:" + id
);
}
}
class HeroLink {
public int id
;
public String name
;
public String nickName
;
public HeroLink next
;
public HeroLink(int id
, String name
, String nickName
) {
this.id
= id
;
this.name
= name
;
this.nickName
= nickName
;
}
@Override
public String
toString() {
return "HeroLink{" +
"id=" + id
+
", name='" + name
+ '\'' +
", nickName='" + nickName
+ '\'' +
'}';
}
}
转载请注明原文地址:https://blackberry.8miu.com/read-26706.html