人若无名 便可潜心练剑.|

hazy1k

园龄:7个月粉丝:14关注:0

2025-02-20 21:17阅读: 7评论: 0推荐: 0

第4章 C语言链表介绍

第四章 C语言链表介绍

1. 单向链表

1.1 链表的定义

屏幕截图 20250220 203355png

该链表中共有 n 个节点, 前一个节点都有一个箭头指向后一个节点,首尾相连,组成一个圈。

节点都是一个自定义类型的数据结构,在这个数据结构里面可以有单个的数据、数组、指针数据和自定义的结构体数据类型等等信息,

// 单向链表示例
struct Node {
    struct node *next; // 指向下一个节点的指针
    char datal; // 数据域
    unsigned char array[]; // 数组域
    unsigned long *prt; // 指针数据
    struct userstruct data; // 自定义结构体数据
};

除了 struct node *next 这个节点指针之外,剩下的成员都可以理解为节点携带的数据,但是这种方法很少用。 通常的做法是节点里面只包含一个用于指向下一个节点的指针。要通过链表存储的数据内嵌一个节点即可,这些要存储的数据通过这个内嵌的节点即可挂接到链表中,就好像晾衣架的钩子一样,把衣服挂接到晾衣架中

// 节点定义
struct node {
    srtuct node *nest; // 指向下一个节点
};
// 数据
struct data {
    // 通过节点将数据挂到链表
    struct node *next;   
    /*
       要存储的数据
   */
};

屏幕截图 20250220 204248png

1.2 链表的操作

链表常规的操作就是节点的插入和删除,为了顺利的插入,通常一条链表我们会人为地规定一个根节点, 这个根节点称为生产者。 通常根节点还会有一个节点计数器,用于统计整条链表的节点个数

屏幕截图 20250220 204402png

2. 双向链表

双向链表与单向链表的区别就是节点中有两个节点指针,分别指向前后两个节点,其它完全一样。

屏幕截图 20250220 204448png

本文作者:hazy1k

本文链接:https://www.cnblogs.com/hazy1k/p/18727809

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   hazy1k  阅读(7)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起