【C语言-数据结构】单链表的定义

单链表的定义(实现)

比较顺序表和单链表的物理存储结构就能够清楚地发现二者的区别

在这里插入图片描述

用代码定义一个单链表

typedef struct LNode{ElemType data;	//每个结点存放一个数据元素struct LNode* next; 	//指针指向下一个结点
}LNode, *LinkList;//要表示一个单链表时,只需声明一个头指针L,指向单链表的第一个结点
LNode* L;	//➡️ 强调这是一个结点
LinkList L; //➡️ 强调这是一个单链表
//以上两种声明方式都可以,建议使用第二种,代码可读性更强

单链表的初始化

不带头节点的单链表

typedef struct LNode{ElemType data;struct LNode* next; 
}LNode, *LinkList;bool InitList(LinkList* L){	//初始化一个空的单链表*L = NULL;	//空表,暂时没有任何结点,防止脏数据return true;
}int main(){LinkList L; //声明一个指向单链表的指针InitList(&L);	//初始化一个空表//...return 0;
}

带头节点的单链表

typedef struct LNode{ElemType data;struct LNode* next; 
}LNode, *LinkList;//初始化一个单链表(带头节点)
bool InitList(LinkList* L){*L = (LNode*)malloc(sizeof(LNode));if(*L == NULL)return false;(*L)->next = NULL;return true;
}int main(){LinkList L; //声明一个指向单链表的指针if (InitList(&L)) {  // 初始化一个空表,传递指针的地址printf("单链表初始化成功\n");} else {printf("单链表初始化失败\n");}//...return 0;
}

总结

不带头结点,写代码更麻烦
对第一个数据结点和后续数据结点的处理需要用不同的代码逻辑
对空表和非空表的处理需要用不同的代码逻辑

带头结点,写代码更方便


本文主要参考《王道计算机考研 数据结构》课程视频

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/146113.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

[JavaEE] TCP协议

目录 一、TCP协议段格式 二、TCP确保传输可靠的机制 2.1 确认应答 2.2 超时重传 2.3 连接管理 2.3.1 三次握手 2.3.2 四次挥手 2.4 滑动窗口 2.4.1 基础知识 2.4.2 两种丢包情况 2.4.2.1 数据报已经抵达,ACK丢包 2.4.2.2 数据包丢包 2.5 流量控制…

【时时三省】(C语言基础)指针笔试题2

山不在高,有仙则名。水不在深,有龙则灵。 ----CSDN 时时三省 笔试题2 这里的0x1是16进制的1 跟十进制的1一样 这道题考察的是:指针类型决定了指针的运算 p是上面结构体的指针 它指向的大小结果是20个字节 指针…

项目第五弹:队列消息管理模块

项目第五弹:队列消息管理模块 一、消息如何组织并管理1.消息结构体2.消息持久化管理模块设计1.数据消息文件名2.临时消息文件名3.对外接口与包含成员 二、自定义应用层协议解决文件读写的粘包问题1.Length-Value协议 三、队列消息管理模块设计1.待确认消息哈希表2.待…

[数据结构]动态顺序表的实现与应用

文章目录 一、引言二、动态顺序表的基本概念三、动态顺序表的实现1、结构体定义2、初始化3、销毁4、扩容5、缩容5、打印6、增删查改 四、分析动态顺序表1、存储方式2、优点3、缺点 五、总结1、练习题2、源代码 一、引言 想象一下,你有一个箱子(静态顺序…

【医学半监督】对比互补掩蔽的自监督预训练半监督心脏图像分割

SELF-SUPERVISED PRE-TRAINING BASED ON CONTRASTIVE COMPLEMENTARY MASKING FOR SEMI-SUPERVISED CARDIAC IMAGE SEGMENTATION 2024 IEEE International Symposium on Biomedical Imaging (ISBI) 摘要: 心脏结构分割对心脏病诊断非常重要,而使用大量注释的深度学习在这项任…

Buck变换器闭环控制,simulink仿真模型(适合初学者学习)

Buck变换器,又称为降压斩波器,是一种常见的DC-DC转换器,广泛应用于电源管理领域。它通过开关元件(通常是MOSFET或BJT)的导通与截止,改变输入电压到负载的平均电压,从而实现电压的降低。在实际应…

harbor私有镜像仓库,搭建及管理

私有镜像仓库 docker-distribution docker的镜像仓库,默认端口号5000 做个仓库,把镜像放里头,用什么服务,起什么容器 vmware公司在docker私有仓库的基础上做了一个web页面,是harbor docker可以把仓库的镜像下载到本地&…

tauri嵌入自定义目录/文件,并在代码中读取文件内容的操作流程

可以看官方文档:Embedding Additional Files | Tauri Apps 在绑定了文件之后,可以在js中访问嵌入的文件或者在rust中读取嵌入的文件内容,详细的配置操作如下。 在src-tauri中创建自定义文件夹或文件,并在在tauri.conf.json中配置…

Java多线程Thread及其原理深度解析

文章目录 1. 实现多线程的方式2. Thread 部分源码2.1. native 方法注册2.2. Thread 中的成员变量2.3. Thread 构造方法与初始化2.4. Thread 线程状态与操作系统状态2.4. start() 与 run() 方法2.5. sleep() 方法2.6. join() 方法2.7. interrupt() 方法 本文参考: 线…

Spring自定义参数解析器

在这篇文章中,我们认识了参数解析器和消息转换器,今天我们来自定义一个参数解析器。 自定义参数解析器 实现HandlerMethodArgumentResolver的类,并注册到Spring容器。 Component//注册到Spring public class UserAr…

Java集合必知必会:热门面试题汇编与核心源码(ArrayList、HashMap)剖析

写在前面 🔥我把后端Java面试题做了一个汇总,有兴趣大家可以看看!这里👉 ⭐️在无数次的复习巩固中,我逐渐意识到一个问题:面对同样的面试题目,不同的资料来源往往给出了五花八门的解释&#…

【Linux进程控制】自主Shell

目录 自主shell实现 获取基本变量 实现命令行 获取用户命令字符串 命令行字符串分割 内建命令CD() chdir getcwd putenv 检查是否为内建命令 检查是否为重定向 执行命令 主函数设置 测试用例 项目代码 自主shell实现 根据之前学的内容,我们已经可以模…

【学习笔记】SSL/TLS安全机制之CAA

1、概念界定 CAA全称Certificate Authority Authorization,即证书颁发机构授权,每个CA都能给任何网站签发证书。 2、CAA要解决的问题 例如,蓝色网站有一张橙色CA颁发的证书,我们也知道还有许多其他的CA;中间人可以说服…

网址链接能做成二维码吗?在线网址二维码生成的操作技巧

现在用二维码能够展示很多的内容,将内容放入二维码后,通过扫码的方式获取内容会更加的方便快捷,简化获取内容的流程。比如在分享网上内容时,可以将链接生成二维码的方式来让用户扫码访问网页,那么网址转二维码具体该怎…

【BetterBench博士】2024年中国研究生数学建模竞赛 E题:高速公路应急车道紧急启用模型 问题分析

2024年中国研究生数学建模竞赛 E题:高速公路应急车道紧急启用模型 问题分析 更新进展 【BetterBench博士】2024 “华为杯”第二十一届中国研究生数学建模竞赛 选题分析 【BetterBench博士】2024年中国研究生数学建模竞赛 E题:高速公路应急车道紧急启用…

【垃圾识别系统】Python+卷积神经网络算法+人工智能+深度学习+计算机毕设项目选题+TensorFlow+图像识别

一、介绍 垃圾识别分类系统。本系统采用Python作为主要编程语言,通过收集了5种常见的垃圾数据集(‘塑料’, ‘玻璃’, ‘纸张’, ‘纸板’, ‘金属’),然后基于TensorFlow搭建卷积神经网络算法模型,通过对图像数据集进…

Qt窗口——对话框

文章目录 对话框自定义对话框对话框分类消息对话框QMessageBox使用示例自定义按钮快速构造对话框 颜色对话框QColorDialog文件对话框QFileDialog字体对话框QFontDialog输入对话框QInputDialog 对话框 对话框可以理解成一个弹窗,用于短期任务或者简洁的用户交互 Qt…

2024华为杯研赛D题分析

2024华为杯研究生数学建模D题分析如下,完整版本在文末名片

【HTTP】请求“报头”,Referer 和 Cookie

Referer 描述了当前这个页面是从哪里来的(从哪个页面跳转过来的) 浏览器中,直接输入 URL/点击收藏夹打开的网页,此时是没有 referer。当你在 sogou 页面进行搜索时,新进入的网页就会有 referer 有一个非常典型的用…

扎克伯格的未来愿景:用智能眼镜引领数字社交新时代

Meta Connect 2024大会前夕,创始人马克扎克伯格的90分钟播客访谈,为我们描绘了Meta未来的蓝图。这场访谈,不仅是大会的热身,更是对科技未来的一次深刻洞察。 人工智能 - Ai工具集 - 未来办公人的智能办公生活导航网 扎克伯格的未…