class SingleLinkList4{
//创建头节点
private Hero head = new Hero(0);
public Hero getHead() {
return head;
}
//删除节点
public void del(int no){
if (head.getNext() == null){
System.out.println("链表为空!!!");
return;
}
boolean flag = false;
Hero temp = head;
while (true){
if (temp.getNext() == null){
break;
}
if (temp.getNext().getNo() == no){//找到要删除节点的前一个节点
flag = true;
break;
}
temp = temp.getNext();
}
if (flag){
temp.setNext(temp.getNext().getNext());
}else {
System.out.println("没有找到这个节点!!!");
}
}
//添加节点到链表中
public void add(Hero node){
Hero temp = head;
while (true){
if (temp.getNext() == null){//找到链表的最后
break;
}
temp = temp.getNext();//像后移动
}
temp.setNext(node);
}
//按照编号顺序添加链表
public void addByOrder(Hero node){
Hero temp = head;
boolean flag = false;
while (true){
if (temp.getNext() == null){
break;
}
//如果要加入的节点的编号比链表中编号要小
if (temp.getNext().getNo() > node.getNo()){
break;
}else if(temp.getNext().getNo() == node.getNo()){
flag = true;
break;
}
temp= temp.getNext();
}
if (flag){
System.out.println("链表中已经存在此节点!!");
}else {
node.setNext(temp.getNext()); //像头插法
temp.setNext(node);
}
}
//展示链表里面的数据
public void show(){
if (head.getNext() == null){
System.out.println("链表为空!!!");
return;
}
Hero temp = head.getNext();
while (temp != null){//当前节点不为空
System.out.println(temp);
temp = temp.getNext();
}
}
}
class Hero{
private int no;
private Hero next;
@Override
public String toString() {
return "Hero{" +
"no=" + no +
'}';
}
public int getNo() {
return no;
}
public void setNo(int no) {
this.no = no;
}
public Hero getNext() {
return next;
}
public void setNext(Hero next) {
this.next = next;
}
public Hero(int no) {
this.no = no;
}
}
单链表的增删查改
最新推荐文章于 2024-05-05 09:48:47 发布