栈 (Stack)
核心原理:栈是一种后进先出(Last-In, First-Out, LIFO)的数据结构。123你可以将其想象成一摞盘子,只能从最上面取放,最后放上去的盘子会最先被取走14。
主要操作:所有操作都在栈的顶端(Top)进行。18
入栈 (Push):将元素添加到栈顶15。
出栈 (Pop):移除并返回栈顶的元素15。
查看栈顶 (Peek):访问栈顶元素但不将其移除15。
典型应用:
函数调用:程序使用“调用栈”来管理函数间的调用与返回,保存局部变量和上下文156。
表达式求值:编译器利用栈来评估数学表达式(如中缀、后缀表达式)156。
撤销操作:文本编辑器或图形软件中的“撤销”(Undo)功能,通常用栈来记录操作步骤,以便按相反顺序撤销146。
括号匹配:在代码编译或文本处理中,用栈来检查括号是否正确配对和嵌套。123
队列 (Queue)
核心原理:队列是一种先进先出(First-In, First-Out, FIFO)的数据结构。123它类似于现实生活中的排队,先排队的人会先被服务14。
主要操作:元素从一端进入,从另一端离开15。
入队 (Enqueue):在队列的尾部(Rear)添加元素。13
出队 (Dequeue):从队列的头部(Front)移除元素。13
查看队头 (Front/Peek):访问队头元素但不将其移除。13
典型应用:
任务调度:操作系统使用队列来管理需要执行的进程或任务,确保它们按顺序被处理。236
打印队列:多个打印任务被放入一个队列中,打印机按照“先来先服务”的顺序进行打印。568
广度优先搜索 (BFS):在图或树的遍历算法中,队列用于按层级顺序访问节点56。
处理网络请求:Web服务器使用队列来管理并顺序处理来自客户端的并发请求6。

Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐