
数据结构基础:C 语言实现单链表详解
单链表是线性表的一种链式存储实现,节点在内存中非连续分布,通过指针链接。详细讲解了单链表的概念、结点结构及核心操作实现。内容涵盖头插、尾插、头删、尾删、查找、插入、删除及销毁等功能,重点分析了二级指针在修改头结点时的必要性,并对比了不同链表类型的适用场景。通过 C 语言代码示例,展示了如何安全地管理动态内存与指针关系,适合初学者系统掌握数据结构基础。
博客作者
自由如风
353
已发布文章
11K
博客获赞
805K
博客浏览
第 9 页

单链表是线性表的一种链式存储实现,节点在内存中非连续分布,通过指针链接。详细讲解了单链表的概念、结点结构及核心操作实现。内容涵盖头插、尾插、头删、尾删、查找、插入、删除及销毁等功能,重点分析了二级指针在修改头结点时的必要性,并对比了不同链表类型的适用场景。通过 C 语言代码示例,展示了如何安全地管理动态内存与指针关系,适合初学者系统掌握数据结构基础。
Python 中保留小数的 6 种常用方法,涵盖内置函数 round()、字符串格式化(%、format)、f-string、decimal 高精度模块及 numpy.round。文章解析了各方法的语法、优缺点及适用场景,重点指出浮点数精度陷阱及 round() 的四舍六入五成双规则,指导开发者在金融计算、数据分析等不同场景下选择合适的方案以避免精度丢失。

JDK 与 JRE 的区别,强调开发需安装 JDK。建议新手选择 LTS 长期支持版本(如 JDK 17),并优先选用 OpenJDK 以避免商业授权问题。详细列出了通过 Eclipse Adoptium Temurin 官网下载 JDK 的步骤,包括版本、操作系统、架构及安装包类型的选择,并提供了镜像加速建议。

讲解二分查找进阶应用,即在有序数组中查找目标值的起始和结束位置。重点阐述了二分查找的二段性原理,如何通过调整中点计算方式(偏左或偏右)来避免死循环,并提供了基于 Java 语言的完整代码实现,时间复杂度为 O(log n)。
介绍如何使用 Python 构建智能语音交互客户端。涵盖核心功能如语音唤醒、识别与合成,以及智能家居控制能力。步骤包括环境准备(克隆代码、安装依赖)、快速启动及常见故障排查,并详解配置文件以自定义唤醒词灵敏度与 IoT 设备管理。无需硬件即可体验小智 AI 功能,适合开发者快速上手语音助手开发。
OpenClaw 是一个整合 AI 能力的助手框架。文章解析了 AI Agent 的核心构成,包括推理服务作为运行基础、大模型决定智能水平、Memory 提供记忆能力、RAG 实现外部知识检索、MCP 统一工具访问协议以及 Skills 封装具体任务能力。通过将这些组件串联,OpenClaw 使 AI 从单纯聊天转向实际工作执行,涵盖智能客服、代码助手及数据…
Git 中撤销已提交但未推送的三种方法:保留修改用 git reset HEAD~1,彻底删除用 git reset --hard HEAD~1,修改提交用 git commit --amend。操作前可通过 git reflog 确认状态,确保本地操作安全可逆。
对比了 AWS、Azure、GCP 与 DigitalOcean 四大云服务商。传统三巨头功能全面但复杂昂贵,适合大型企业及高合规场景;DigitalOcean 以简单、透明定价和低成本流量见长,更适合中小企业及初创团队。特别是在 AI 算力与出海网络方面,DigitalOcean 提供了高性价比方案。技术选型需根据架构复杂度、成本敏感度及业务规模决定。

介绍如何使用 Python 结合 Flet 框架将网络爬虫开发为移动端应用。核心技术栈包括 httpx 异步请求、BeautifulSoup 解析、asyncio 并发调度及 Flet GUI 界面。项目实现了多平台(网易云、QQ、酷狗等)音乐搜索与播放,以及 Bing 搜图和社交用户聚合功能。通过 flet build apk 命令可将 Python 脚本…

RabbitMQ 的高级特性 TTL(过期时间)。RabbitMQ 支持为消息和队列分别设置 TTL。消息 TTL 在投递前判定,队列 TTL 定期扫描队头。通过 Spring AMQP 示例演示了如何配置交换机、队列及绑定关系。对比发现,当两者同时存在时取最小值;消息级 TTL 不会立即删除过期消息,而队列级 TTL 会直接清理。该机制适用于订单超时取消等…
Python 中列表和元组的基本概念、定义语法及常用操作。列表是可变序列,支持增删改,适用于动态数据;元组是不可变序列,适用于固定数据存储。两者均支持索引、切片和遍历。文章详细对比了它们在可变性、语法和性能上的区别,帮助开发者根据实际需求选择合适的容器类型。

Linux 环境下 Vim 编辑器的基本使用方法。首先讲解了软件包管理器的概念及安装方式,随后详细阐述了 Vim 的三种主要工作模式:普通模式、插入模式和末行模式。文中列举了光标移动、文本复制剪切粘贴、撤销删除修改等常用命令,并演示了多文件编辑、批量注释等便捷操作。最后提供了 .vimrc 配置文件示例,帮助用户优化 Vim 使用体验,适合初学者快速掌握 L…
C++ 设计模式涵盖创建型、结构型和行为型三大类共 23 种方案。文章通过具体代码示例解析单例、工厂、观察者等常用模式的实现细节,强调接口解耦与对象复用。内容包含核心模式优先掌握建议,结合现代 C++ 特性优化实践,帮助开发者构建高可维护性系统。避免过度设计,理解应用场景是关键。
对比了逻辑回归、随机森林、支持向量机、AdaBoost、高斯贝叶斯、XGBoost、全连接神经网络及卷积神经网络共 8 种算法在矿物分类任务上的表现。通过网格搜索调优,XGBoost 测试集准确率达 97%,CNN 达 100%,MLP 为 94.88%。高斯贝叶斯因准确率过低被弃用。结论显示集成学习与深度学习模型在该数据集上泛化能力更强,其中 XGBoos…

Fooocus 部署涉及本地 Linux 环境的手动配置与云平台的一键部署两种主要路径。本文详细记录了 Conda 环境创建、Python 版本兼容性处理(如 torch 依赖)、系统库安装等关键步骤,并分析了手动调试中常见的错误原因及解决方案。同时介绍了利用云镜像服务跳过繁琐配置、直接获取 GPU 资源进行 AIGC 创作的路径,帮助读者根据技术背景和需求…
介绍如何使用 Llama-Factory 框架加速 NLP 模型的微调与迭代。针对常见的环境配置耗时、显存管理困难及实验不可控等问题,Llama-Factory 通过声明式配置实现了标准化流程。文章详细讲解了 LoRA 和 QLoRA 技术如何降低显存占用,支持消费级显卡运行大模型。同时涵盖了多 GPU 分布式训练、断点续训功能以及从数据准备到提交的全流程工…

Python 虚拟环境用于隔离项目依赖,避免库版本冲突。介绍基于 venv、virtualenv 和 conda 的创建方法,涵盖 PyCharm 配置流程及 Windows PowerShell 执行策略报错的解决方案,帮助开发者建立规范的工程化开发环境。

TWIST2 全身 VR 遥操系统实现无动捕下的人形机器人数据采集与控制。该系统采用 PICO 4U 配合脚踝追踪器获取全身姿态,结合 Unitree G1 机器人及主动视觉颈部模块。通过强化学习训练运动跟踪控制器,并利用扩散策略(Diffusion Policy)基于视觉观测预测全身关节位置,实现自主控制。实验表明,系统支持长时序灵巧任务如折叠毛巾、搬运物…

Git 版本控制系统及 Windows 下图形化工具 TortoiseGit 的安装流程。涵盖从官网下载、环境配置到右键菜单验证的完整步骤,帮助开发者快速搭建本地开发环境。

Qt Creator 配置 GitHub Copilot 插件需先安装扩展,随后配置 copilot.vim 语言服务器路径及 Node.js 环境,最后通过 GitHub 账号登录订阅服务。操作涉及在 Extensions 菜单搜索插件并重启 IDE,解压 vim 插件至指定目录,设置 language-server.js 和 node.exe 路径,并在…