数据结构入门:栈、队列与链表一次讲清

举报
yd_296515785 发表于 2026/11/05 11:47:04 2026/11/05
【摘要】 数据结构说白了就是“数据怎么排队、怎么存取”。同样的信息,排法不同,取用速度和麻烦程度就完全不同。新手先搞懂三个最基础的就够了:栈、队列、链表。栈是“后进先出”。像一摞盘子,只能从最上面放、也只能从最上面拿,后放的反而先出来。浏览器后退、编辑器撤销、函数调用,都是栈在工作:点开一个页面就压进栈,点后退就弹出最近那个。栈只关心栈顶,操作简单,但想取中间某个元素就得先把上面的全弹出来,不适合随机...

数据结构说白了就是“数据怎么排队、怎么存取”。同样的信息,排法不同,取用速度和麻烦程度就完全不同。新手先搞懂三个最基础的就够了:栈、队列、链表。

栈是“后进先出”。像一摞盘子,只能从最上面放、也只能从最上面拿,后放的反而先出来。浏览器后退、编辑器撤销、函数调用,都是栈在工作:点开一个页面就压进栈,点后退就弹出最近那个。栈只关心栈顶,操作简单,但想取中间某个元素就得先把上面的全弹出来,不适合随机取用。

队列是“先进先出”。像排队买票,先来的人先办完走,后来的人在队尾等着。打印任务、消息排队、操作系统调度,都是队列:任务按到达顺序一个个处理,谁也不插队。队列只关心队头和队尾,取中间同样不方便,但公平性是它的优点。

链表是“一串用绳子连起来的盒子”。每个节点存两样东西:自己的数据,和下一个节点的地址。想在中间插入一个新节点,只要改两根“绳子”的指向,不用像数组那样把后面所有元素往后挪。代价是找第 n 个元素必须从头一个一个数过去,不能像数组那样直接按下标跳到位置,查找慢,插入删除快。

三者怎么选,看操作而不是看名字:只在同一端进出、要撤销和回退,选栈;按到达顺序公平处理,选队列;频繁在中间插入删除、不常按位置随机访问,选链表。如果经常按下标随机取,第 n 个元素一秒就要拿到,那数组更合适,别硬套链表。

一句话总结:栈管后进先出,队列管先进先出,链表管灵活增删。先分清“取用顺序”和“增删位置”这两个需求,再选结构,就不容易选错。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。