一:访问各个节点中的数据
(1)访问链表中的各个节点的有效数据,这个访问必须注意不能使用p、p1、p2,而只能使用phead
(2)只能用头指针不能用各个节点自己的指针。因为在实际当中我们保存链表的时候是不会保存各个节点的指针的,只能通过头指针来访问链表节点
(3)前一个节点的pNEXT指针能帮助我们找到下一个节点
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
//构建一个链表的节点
struct node
{
int datas; //有效数据
struct node *pNEXT; //指向下一个节点的指针
};
int main(void)
{
//定义头指针
struct node *phead = NULL;
//创建一个链表节点
struct node *p = (struct node *)malloc(sizeof(struct node));
if(NULL == p) //检查申请结果是否正确
{
printf("malloc error!\n");
return -1;
}
//memset(p,0,sizeof(struct node));
bzero(p,sizeof(struct node)); //清理申请到的堆内存
//填充节点
p->datas = 1; //填充数据区
p->pNEXT = NULL; //将来要执行下一个节点的首地址
phead = p; //将本节点和前面的头指针关联起来
//创建一个链表节点并和上一个节点关联起来
struct node *p1 = (struct node *)malloc(sizeof(struct node));
if(NULL == p1) //检查申请结果是否正确
{
printf("malloc error!\n");
return -1;
}
//memset(p,0,sizeof(struct node));
bzero(p1,sizeof(struct node)); //清理申请到的堆内存
//填充节点
p1->datas = 1; //填充数据区
p1->pNEXT = NULL; //将来要执行下一个节点的首地址
p-pNEXT>= p1; //将本节点和前面的节点关联起来
//再创建一个链表节点并和上一个节点关联起来
struct node *p2 = (struct node *)malloc(sizeof(struct node));
if(NULL == p2) //检查申请结果是否正确
{
printf("malloc error!\n");
return -1;
}
//memset(p2,0,sizeof(struct node));
bzero(p2,sizeof(struct node)); //清理申请到的堆内存
//填充节点
p2->datas = 1; //填充数据区
p2->pNEXT = NULL; //将来要执行下一个节点的首地址
p1-pNEXT>= p2; //将本节点和前面的节点关联起来
//访问链表节点的第一个节点的有效数据
printf("phead->p->datas = %d\n",phead->datas);
printf("p->datas = %d\n",p->data

最低0.47元/天 解锁文章
5107

被折叠的 条评论
为什么被折叠?



