您的位置:首页 > 理论基础 > 数据结构算法

数据结构入门学习系列-4(线性表的链式存储)

2017-10-23 10:47 363 查看
上一篇讲了线性表中的线性存储,改文章学习一下线性表的链式存储结构。

链式存储:一组任意的存储单元来存储数据,而不必须是连续的存储的单元。因此为了正确表示数据间的逻辑关系,除了数据域域外,我们还需要一个指针域。

当一个节点只包含一个指针域的时候,该指针指向数据的后继节点,我们称为单链表。如下图所示:

data*next
一般单链表的第一个节点之前有一个头结点,head节点,该节点可以不存储任何数据信息。所以单链表是由头结点唯一确定的,因此可以用头指针来表示单链表。下面看一下单链表的逻辑结构和物理结构:



C语言中对该结构的抽象定义为:

typedef struct LNode {
ElemType data;
struct LNode *next;
} LNode;
使用的时候,需要动态申请内存和动态释放内存:

LNode *p = (LNode *)malloc(sizeof(LNode));

p->data = 10; p->next=NULL;

free(p);

下面图示是一些常见的链表指针操作,请作参考:





这些操作都比较经典,后续的一些链表的增删改查基本算法中都有涉及。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: