“携手创作,共同成长!开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第4天,点击查看活动详情”
单链表介绍和创建一个单链表类
链表(Linked List)介绍
链表是有序的列表,但是它在内存中是存储如下:
链表是以节点为方式来存储的。链表有带头节点的,也有不带头节点的,有没有头节点看具体的要求。一个节点分为data域和next域,next域代表的是下一个数据的节点。
在下方实际内存图中,头指针指向a1,而后的next域110指向了a2,而a2的next域180指向了a3,依次类推。也就是说:链表每个节点不一定是连续存储的。
单链表介绍
单链表是一种链式存取的[数据结构],用一组地址任意的[存储单元]存放线性表中的数据元素。链表中的数据是以节点来表示的,每个节点的构成:元素([数据元素]的映象) +[ 指针]位置),元素就是存储数据的存储单元,指针就是连接每个节点的[地址]数据。
单链表的逻辑结构如下(其中最后一个节点的next域为null):
代码要点:
1.只有最后一个节点才会为null,这个时候就可以退出了,这里单链表的前一个节点的位置就是最后一个节点的位置
if(temp.next==null) {
break;
}
2.若执行到最后一个,其实也是已经找到了位置,直接在temp后插入即可temp.next.no>heroNode.no
3.若两者相等说明要添加的编号已经存在
temp.next.no==heroNode.no
4.通过定义一个布尔值来判断类型值的概念
定义HeroNode,每个HeroNode对象相当于是一个单链表
代码实现:
class HeroNode{
public int no;
public String name;
public String nickname;
public HeroNode next; //指向下一个节点,所以要定义一个HeroNode类型的
public HeroNode(**int** no, String name, String nickname) {
this.no = no;
this.name = name;
this.nickname = nickname;
}