单链表(1)

108 阅读2分钟

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

单链表介绍和创建一个单链表类

链表(Linked List)介绍

链表是有序的列表,但是它在内存中是存储如下:

链表是以节点为方式来存储的。链表有带头节点的,也有不带头节点的,有没有头节点看具体的要求。一个节点分为data域和next域,next域代表的是下一个数据的节点。

在下方实际内存图中,头指针指向a1,而后的next域110指向了a2,而a2的next域180指向了a3,依次类推。也就是说:链表每个节点不一定是连续存储的。

图片.png

单链表介绍

单链表是一种链式存取的[数据结构],用一组地址任意的[存储单元]存放线性表中的数据元素。链表中的数据是以节点来表示的,每个节点的构成:元素([数据元素]的映象) +[ 指针]位置),元素就是存储数据的存储单元,指针就是连接每个节点的[地址]数据。

单链表的逻辑结构如下(其中最后一个节点的next域为null):

图片.png

代码要点:

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;

}