c++ 链表_C语言-线性表的定义和逻辑结构-单向链表的存储结构和操作(五)

单向链表的表示

与线性表(a1,a2,…,an)相应的单向链表由n个结点链接而成。每个数据元素对应链表中一个结点,数据元素ai相应的结点在单向链表中称为结点ai。结点ai中的数据域存储数据元素ai,指针域用于存放ai的直接后继元素ai+1相应结点的存储地址。链表中第一个结点的存储位置称为头指针,程序中通常用一个指针变量存储头指针。本章命名该指针变量为head。最后一个数据元素an没有直接后继,所以链表中最后一个结点的指针域存放的是空指针(NULL)。该单向链表如图2-4所示。

717ea3c703049d83f86e962ba9c910a7.png

单向链表示意图

由单向链表的结构可知,只要已知头指针,就可以由前到后逐次访问到链表中任意一个结点。具体做法是由头指针出发,可以访问到第一个结点,由第一个结点的指针域可以访问到第二个结点,…,一般地,由第i个结点的指针域可以访问到第i+1个结点。

静态法建立链表

带注释的完整程序:#define NULL 0void main(){NODE a, b, c, d, *head, *p;a.data=3;b.data=5;c.data=8;d.data=2; /* 对结点的数据域(结构变量的data成员)赋值 */head=&a; /* a结点的起始地址赋值给头指针变量head */a.next=&b; /* b结点的起始地址赋值给a结点的指针域(结构变量的next成员)*/b.next=&c;c.next=&d;d.next=NULL; /* d是尾结点,把空指针赋值给d结点的指针域 (结构变量的next成员)*/p=head; /* 工作指针p指向结点a */do{printf("%d
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值