单链表学习(二)
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指针指向的数据节点,是你要访问的数据节点的前面一个节点,所以在代码上有不同,但是思路都是一样
后面会继续分享其他的基础算法。
以上是关于单链表学习(二)的主要内容,如果未能解决你的问题,请参考以下文章