单链表学习(二)

Posted hzb1224

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了单链表学习(二)相关的知识,希望对你有一定的参考价值。

在链表学习(一)里面分享了链表头节点和数据节点的创建。今天分享一下有关链表节点的访问。技术图片

如上图所示,我采用的是在头节点后面创建数据节点的方法,我们要访问a1这个数据节点的时候,我们需要得到它的地址才能访问,而a1节点的地址在a2节点的指针里面,所以要访问a1数据节点需要访问到a2数据节点,依次类推,访问a2数据节点,我们又需要a2数据节点的地址,因此我们需要访问a3数据节点,a3数据节点的地址又存放在头节点里面。所以,我们需要通过头节点开始,进行依次访问。

访问特点很明显,从头节点开始依次访问下去,直到最后一个数据节点里面的指针里面的内存地址为NULL为止。

 

代码如下:

void node_find(node *head)  //得到指向头节点的指针,实现访问头节点
{
    node *p;   //定义一个结构体指针P来实现每个数据节点的访问
    p = head->next;//将头节点里面存放的地址给p,让p指向第一个数据节点
    while (p != NULL)  //数据节点里面的指针为NULL就说明后面没有数据节点,停止循环
    {
        cout << p->a;  //输出p指向的数据节点的值
        p = p->next;  //访问完一个数据节点后继续访问下一个
    }
}

还有一种访问的算法

如下:

void node_find(node *head)
{
    node *p;
    p = head;  //让P指向头节点
    while (p->next != NULL)  //同样判断数据节点里面的指针是否为空
    {
        cout << p->next->a;//访问数据节点的数据
        p = p->next;//指向下一个数据节点
    }
}

第一种方法的p指针指向的数据节点,也就是你要访问的数据节点

第二种方法的p指针指向的数据节点,是你要访问的数据节点的前面一个节点,所以在代码上有不同,但是思路都是一样

 

后面会继续分享其他的基础算法。

以上是关于单链表学习(二)的主要内容,如果未能解决你的问题,请参考以下文章

Java实现单链表(步骤详解+源码)

链表的学习-2

单链表的学习

数据结构学习笔记——链表的相关知识(单链表带头结点和不带头结点的基本操作)

单链表的学习笔记

数据结构与算法系列四(单链表)