出去玩
1、本来是周五下午就出去玩
2、不过因为闺蜜周六有考试呢,所以就放在周六吧
3、都计划了很多事情,这周就统统实现了去

上篇文章就不公开了,不过呢,这周天晚上我更新下文章,我们出去玩拍的照片,专门在写一篇文章
数据结构-单链表
package com.xiaonan.linkedlist;
public class SingleLinkedListDemo {
public static void main(String[] args) {
//HeroNode heroNode1=new HeroNode(1,"11","111");
//HeroNode heroNode2=new HeroNode(2,"11","111");
//HeroNode heroNode3=new HeroNode(3,"11","111");
//HeroNode heroNode4=new HeroNode(4,"11","111");
//HeroNode heroNode5=new HeroNode(5,"11","111");
//SingleLinkedList singleLinkedList=new SingleLinkedList();
//singleLinkedList.add(heroNode1);
//singleLinkedList.add(heroNode2);
//singleLinkedList.add(heroNode3);
//singleLinkedList.add(heroNode4);
//singleLinkedList.addbyorder(heroNode1);
//singleLinkedList.addbyorder(heroNode3);
//singleLinkedList.addbyorder(heroNode2);
//singleLinkedList.addbyorder(heroNode4);
//singleLinkedList.list();
//singleLinkedList.addbyorder(heroNode1);
//singleLinkedList.addbyorder(heroNode5);
//singleLinkedList.list();
//HeroNode heroNode5=new HeroNode(3,"33","333");
//singleLinkedList.delete(heroNode5);
//singleLinkedList.list();
}
}
//定义一个SingleLinkedList,管理英雄
class SingleLinkedList{
//先初始化一个头节点,头节点不要动,不存放数据
private HeroNode head=new HeroNode(0," ","");
//添加
//思路:不考虑编号顺序
//1:找到当前链表的最后节点
//2:将最后这个节点的next指向新节点
public void add(HeroNode heroNode){
//因为head节点不能动,因此我们需要一个辅助变量 temp
HeroNode temp=head;
//遍历链表 到最后
while(true){
if(temp.next==null){
break;
}
//如果没有找到,那我们就后移
temp=temp.next;
}
//当退出while的时候,temp就指向了最后
temp.next=heroNode;
}
//第二种添加方式,根据排名将英雄添加到指定位置
//如果有这个排名,则添加失败,并给出提示
public void addbyorder(HeroNode heroNode){
//头节点不能动,所以必须通过一个辅助变量
HeroNode temp=head;
Boolean flag=false;//标志添加的编号是否存在 默认为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;
}
//判断false的值
if(flag){
//编号存在
System.out.println("准备插入的英雄"+heroNode+"存在");
}else{
//插入到链表中
heroNode.next=temp.next;
temp.next=heroNode;
}
}
//修改节点的信息,根据No编号来修改,即no编号不能修改
public void update(HeroNode heroNode){
//判断是否为空
if(head.next==null){
System.out.println("链表为空");
return;
}
HeroNode temp=head.next;
//寻找no编号的节点
//Boolean flag=false;//标志添加的编号是否存在 默认为false
while(true){
if (temp==null){
break;
}
if(temp.no==heroNode.no){
//找到了
//flag=true;
temp.name= heroNode.name;
temp.nickname= heroNode.nickname;
break;
}
temp=temp.next;
}
}
public void delete(HeroNode heroNode){
HeroNode temp=head;
//寻找no编号的节点
while(true){
if(temp.next==null){
break;
}
if(temp.next.no==heroNode.no){
temp.next=temp.next.next;
break;
}
temp=temp.next;
}
}
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=temp.next;
}
}
}
//定义一个HeroNode 每一个HeroNOde对象就是一个节点
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;
this.next = next;
}
@Override
public String toString() {
return "HeroNode{" +
"no=" + no +
", name='" + name + '\'' +
", nickname='" + nickname + '\'' +
'}';
}
}
注意
1、单链表操作其实就是节点节点之间操作
2、修改与查找(我这里没有写),这俩比较简单
3、添加(顺序添加)和删除,这俩模块比较可能绕点。不过我把重点代码贴在下面
4、添加条件temp.next.no>heroNode.no,实现代码heroNode.next=temp.next;temp.next=heroNode;
5、删除条件temp.next.no==heroNode.no,实现代码temp.next=temp.next.next;
6、大家都发现了吧,添加和修改都是当前节点的下一个节点去操作
新车新盘 嘎嘎稳 嘎嘎靠谱coinsrore.com
新车首发,新的一年,只带想赚米的人coinsrore.com
新盘 上车集合 留下 我要发发 立马进裙coinsrore.com
做了几十年的项目 我总结了最好的一个盘(纯干货)coinsrore.com
新车上路,只带前10个人coinsrore.com
新盘首开 新盘首开 征召客户!!!coinsrore.com
新项目准备上线,寻找志同道合 的合作伙伴coinsrore.com
新车即将上线 真正的项目,期待你的参与coinsrore.com
新盘新项目,不再等待,现在就是最佳上车机会!coinsrore.com
新盘新盘 这个月刚上新盘 新车第一个吃螃蟹!coinsrore.com
新车新盘 嘎嘎稳 嘎嘎靠谱coinsrore.com
新车首发,新的一年,只带想赚米的人coinsrore.com
新盘 上车集合 留下 我要发发 立马进裙coinsrore.com
做了几十年的项目 我总结了最好的一个盘(纯干货)coinsrore.com
新车上路,只带前10个人coinsrore.com
新盘首开 新盘首开 征召客户!!!coinsrore.com
新项目准备上线,寻找志同道合 的合作伙伴coinsrore.com
新车即将上线 真正的项目,期待你的参与coinsrore.com
新盘新项目,不再等待,现在就是最佳上车机会!coinsrore.com
新盘新盘 这个月刚上新盘 新车第一个吃螃蟹!coinsrore.com
新车新盘 嘎嘎稳 嘎嘎靠谱coinsrore.com
新车首发,新的一年,只带想赚米的人coinsrore.com
新盘 上车集合 留下 我要发发 立马进裙coinsrore.com
做了几十年的项目 我总结了最好的一个盘(纯干货)coinsrore.com
新车上路,只带前10个人coinsrore.com
新盘首开 新盘首开 征召客户!!!coinsrore.com
新项目准备上线,寻找志同道合 的合作伙伴coinsrore.com
新车即将上线 真正的项目,期待你的参与coinsrore.com
新盘新项目,不再等待,现在就是最佳上车机会!coinsrore.com
新盘新盘 这个月刚上新盘 新车第一个吃螃蟹!coinsrore.com
新车新盘 嘎嘎稳 嘎嘎靠谱coinsrore.com
新车首发,新的一年,只带想赚米的人coinsrore.com
新盘 上车集合 留下 我要发发 立马进裙coinsrore.com
做了几十年的项目 我总结了最好的一个盘(纯干货)coinsrore.com
新车上路,只带前10个人coinsrore.com
新盘首开 新盘首开 征召客户!!!coinsrore.com
新项目准备上线,寻找志同道合 的合作伙伴coinsrore.com
新车即将上线 真正的项目,期待你的参与coinsrore.com
新盘新项目,不再等待,现在就是最佳上车机会!coinsrore.com
新盘新盘 这个月刚上新盘 新车第一个吃螃蟹!coinsrore.com
新车新盘 嘎嘎稳 嘎嘎靠谱coinsrore.com
新车首发,新的一年,只带想赚米的人coinsrore.com
新盘 上车集合 留下 我要发发 立马进裙coinsrore.com
做了几十年的项目 我总结了最好的一个盘(纯干货)coinsrore.com
新车上路,只带前10个人coinsrore.com
新盘首开 新盘首开 征召客户!!!coinsrore.com
新项目准备上线,寻找志同道合 的合作伙伴coinsrore.com
新车即将上线 真正的项目,期待你的参与coinsrore.com
新盘新项目,不再等待,现在就是最佳上车机会!coinsrore.com
新盘新盘 这个月刚上新盘 新车第一个吃螃蟹!coinsrore.com