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

本文介绍了链式存储的概念及其在单链表中的应用。通过指针将非连续的存储单元连接起来,实现数据的逻辑关系表示。文中详细解释了单链表的基本结构,并给出了C语言中的实现示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

    上一篇讲了线性表中的线性存储,改文章学习一下线性表的链式存储结构。

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

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

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);

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

        

       

    这些操作都比较经典,后续的一些链表的增删改查基本算法中都有涉及。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值