单链表(4)

52 阅读2分钟

“携手创作,共同成长!开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第7天,点击查看活动详情

单链表实例:

使用head头的单向链表实现—原神愚人众排行榜管理,来完成对人物的修改操作。

head头节点,不存放任何数据,就是代表一个单链表的标头

以判断链表是否为null来为链表结束的标志

2)单链表修改

思路分析:

1.找到需要修改的节点,根据no编号,还是要先定义一个辅助变量

HeroNode temp=head.next;

2.定义一个布尔类型来确定是否可以找到

boolean flag=false;

3.若已经找到了可以进行进行下一步,若没有找到就继续遍历

flag=true;

break;

4.根据flag有没有找到来判断是否进行修改信息

根据no编号来修改节点的信息,但不能修改no编号

定义一个方法*

代码实现

public void updata(HeroNode newheroNode) {

//判断是否为空

if(head.next==null) {

System.out.println("链表为空");

return;

}

//找到需要修改的节点,根据no编号,还是要先定义一个辅助变量

HeroNode temp=head.next;

//定义是否找到该值

boolean flag=false;

while (true) {

if (temp==null) {

//已经遍历完链表了

break;

}

if(temp.no==newheroNode.no)

{

//已经找到了可以进行

flag=true;

break;

}

temp=temp.next;

}

//根据flag来进行改值

if(flag) {

temp.name=newheroNode.name;

temp.nickname=newheroNode.nickname;

}else {

System.out.printf("没有找到该%d席执行官\n",newheroNode.no);

}

}

测试代码

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, "阿蕾奇诺","仆人" );

HeroNode hero5 = new HeroNode(5, "普契涅拉","公鸡" );

HeroNode hero6 = new HeroNode(6, "国崩","散兵" );

HeroNode hero7= new HeroNode(7, "桑多涅","木偶" );

HeroNode hero8= new HeroNode(8, "罗莎琳","女士" );

HeroNode hero81= new HeroNode(8, "无","无" );

HeroNode hero9 = new HeroNode(9, "潘塔罗涅","富人" );

HeroNode hero10 = new HeroNode(10, "卡皮塔诺","队长" );

HeroNode hero11 = new HeroNode(11, "达达利亚","公子" );

//创建单链表

SingleLinkedList singleLinkedList = new SingleLinkedList();

//将数据添加进单链表中

singleLinkedList.add1(hero2);

singleLinkedList.add1(hero1);

singleLinkedList.add1(hero4);

singleLinkedList.add1(hero3);

singleLinkedList.add1(hero5);

singleLinkedList.add1(hero6);

singleLinkedList.add1(hero8);

singleLinkedList.add1(hero9);

singleLinkedList.add1(hero7);

singleLinkedList.add1(hero11);

singleLinkedList.add1(hero10);
//进行修改数据

singleLinkedList.updata(hero81);
//将单链表显示出来

singleLinkedList.list();

}