数据结构的实现 顺序表顺序表是线性表的一种满足逻辑结构和物理结构双线性逻辑结构:数组元素之间呈一对一的先后顺序是逻辑上的线性结构可能与实际结构并不相同物理结构:底层基于数组实现数组的内存空间是连续且不可分割因此数据在物理存储上也连续1.1.顺序表的结构:点击查看代码1.2.顺序表的接口:点击查看代码1.3.顺序表的实现:点击查看代码2.链表逻辑结构线性物理结构离散逻辑结构:数据元素之间通过指针建立一对一的先后顺序逻辑上呈线性。物理结构:节点的内存地址并不连续不能连续访问2.1.链表的结构:点击查看代码2.2.链表的接口:点击查看代码2.3.链表的实现:点击查看代码简单总结一下链表和顺序表的不同点:缓存:由于CPU的运行速率超快与内存不同频需要把内存中的内容先转到寄存器中而寄存器由于空间有限所以要先转到缓存器中然后等寄存器运行结束后再将缓存器中的内容转到寄存器中。(简单的理解)顺序表的缓存利用率高:数组由于空间连续缓存器一次取顺序表的内容就可以一大片一大片的取缓存命中率就高而链表由于空间不一定连续所以就只能一次一次的取效率就慢缓存命中率就低。3.栈栈是一种后进先出的线性表仅允许在栈顶进行插入和删除3.1.栈的实现选择:如果是用链表实现我们就需要频繁的找尾而每次找尾的时间复杂度为O(N)并且再删除尾部的时候还要保存上一节点操作繁琐。所以我们选择了更易操作的数组实现。3.2.栈的结构:点击查看代码3.3.栈的接口:点击查看代码3.4.栈的实现:点击查看代码利用栈可以解决经典算法题(20. 有效的括号 - 力扣LeetCode)思路:1.若遇到左括号就入栈2.若遇到右括号就尝试与栈顶的左括号匹配代码实现:点击查看代码4.队列队列是一种先进先出的线性表在队头删除在队尾插入4.1.队列的应用:医院抽号机还有社交平台上的好友推荐4.2.队列的实现选择:如果用数组实现每次删除的是首元素这样首元素后面的元素就得向前移动时间复杂度为O(N)所以我们用链表更易实现4.3.队列的结构:特殊点:额外用一个结构体封装了它的头节点尾节点以及大小这样传参数的时候就能只传一个参数了点击查看代码4.4.队列的接口:点击查看代码4.5.队列的实现:点击查看代码学了队列可以尝试一下这道题(622. 设计循环队列 - 力扣LeetCode)总结一下栈和队列的区别栈和队列的核心区别就是:一个后进先出一个先进先出用两个队列实现栈(225. 用队列实现栈 - 力扣LeetCode)用两个栈实现队列(232. 用栈实现队列 - 力扣LeetCode)思路如下:5.堆特殊的完全二叉树,分为大堆和小堆大堆:父节点子节点小堆:父节点子节点5.1.堆的存储特性:物理上基于数组存储逻辑上表现为完全二叉树对于一个下标为i的节点若存在子节点左孩子的节点下标:2i 1右孩子的节点下标:2i 2父节点下标:(i - 1)/25.2.堆的结构:点击查看代码5.3.堆的接口:点击查看代码5.4.堆的实现:点击查看代码5.5.堆排序:点击查看代码三、结语数据结构是计算机学科的基石掌握顺序表、链表、栈、队列、堆的核心特性和实现是后续学习树、图、排序算法的基础。建议结合LeetCode算法题反复练习将理论转化为实战能力。分类: c语言数据结构学习, 编程笔记标签: 数据结构c语言顺序表链表免责声明本内容来自平台创作者博客园系信息发布平台仅提供信息存储空间服务。好文要顶 关注我 收藏该文 微信分享杨间粉丝 - 1 关注 - 0加关注00升级成为会员« 上一篇 Git Gitee 新手实操教程 :从安装到代码推送(避坑版)» 下一篇 《排序算法全解析从基础到优化一文吃透八大排序》posted 2026-01-12 22:55 杨间 阅读(201) 评论(0) 收藏 举报刷新页面返回顶部登录后才能查看或发表评论立即 登录 或者 逛逛 博客园首页【推荐】 凌霞 618 年中大促Halo 与 1Panel 产品全线半价叠加满减【推荐】HarmonyOS 6.1.0 创新特性“悬浮页签沉浸光感”精品文章专题【推荐】科研领域的连接者艾思科蓝一站式科研学术服务数字化平台编辑推荐[经验分享] 我的第一个 Skill让 Agent 在对话中成长自进化机制的五层实现代码之外一个技术人的职场困境与自我和解贩卖焦虑的时代我终于接住了真实的焦虑工良吐槽篇万字长文细说 AI 落地之笑谈公告昵称 杨间园龄 5个月粉丝 1关注 0加关注2026年6月日一二三四五六311234567891011121314151617181920212223242526272829301234567891011搜索常用链接我的随笔我的评论我的参与最新评论我的标签我的标签c语言(2)Git、Gitee、版本控制(1)ebp与esp(1)c语言底层(1)数据结构c语言顺序表链表(1)数据结构(1)排序算法(1)汇编指令(1)函数栈帧(1)函数参数传递(1)随笔分类c语言数据结构学习(2)Git 教程 (1)编程笔记(2)随笔档案2026年1月(4)阅读排行榜1. Git Gitee 新手实操教程 :从安装到代码推送(避坑版)(260)2. 数据结构入门顺序表/链表/栈/队列/堆(原理实现)(201)3. 《排序算法全解析从基础到优化一文吃透八大排序》(64)4. 《函数栈帧的创建和销毁》(13)博客园 © 2004-2026​编辑浙公网安备 33010602011771号 浙ICP备2021040463号-3