在计算机领域,栈是一种用于存储对象集合的数据结构。可以使用 push 操作将单个项目添加并存储到栈中。可以使用 pop 操作检索对象,该操作会从栈中移除一个项目。

向栈中添加对象时,它会被放置在之前添加的所有项目之上。移除项目时,可以从栈顶或栈底移除。在移除栈顶项目的栈中,项目的顺序被视为“LIFO”(Last In, First Out,后进先出)。你可以将 LIFO 栈想象成一副扑克牌:将单张牌放在牌堆上,然后从顶部抽牌。在“FIFO”(First In, First Out,先进先出)栈中,项目从栈底移除。你可以将 FIFO 栈想象成自动售货机中的一排商品,商品会按照放入机器的顺序被取出。

栈在计算机编程中有多种用途。例如,LIFO 栈可用于从缓存中检索最近使用的对象。FIFO 栈可用于确保按照数据输入的顺序检索数据,这可以用于处理队列中的数据。

虽然软件程序员经常使用栈,但你在使用程序时通常不会注意到它们。这是因为栈的创建以及 push 和 pop 操作都会在应用程序运行时在后台执行,用户无法看到。不过,如果栈耗尽了内存,就会导致“栈溢出”。如果程序未正确处理栈溢出,可能会生成错误消息,或导致程序崩溃

NOTE: “栈”一词也可以指协议栈,它由多个协同工作的网络协议组成。每个协议都归入 OSI 模型定义的七个不同层次之一。

更新日期 July 23, 2014 作者 Per C.

quiz测试你的知识

What two resolutions does the HDV format support?

A
360 + 480
0%
B
720p + 1080i
0%
C
1080p + 3840
0%
D
3840 + 4096
0%
Correct! Incorrect!     View the HDV definition.
More Quizzes →

Tech Terms 计算机词典

本页中栈的定义是由 TechTerms.com 的作者撰写的原创定义。如果您想引用本页或引用此定义,请使用定义正下方的绿色引用栏。

我们的目标是以简单易懂的方式解释计算机术语。我们努力使发布的每个定义都做到准确和简明。如果您对本定义有任何反馈,或想建议一个新的技术术语,请联系我们

Tech Terms 通讯

通过我们的每日或每周通讯提升您的技术知识!立即订阅,即可将新术语和测验发送到您的收件箱。

订阅免费的 TechTerms 通讯

您希望多久收到一封电子邮件?

您可以随时使用每封邮件中的链接取消订阅或更改接收频率。 有疑问?请联系我们

注意:通讯以英文发送。