安全中国首页 > 文章中心 > 安全防护
 
安全中国网友投稿专用上传FTP空间:
Ftp服务器:download.anqn.com
Ftp端口:21
用户名:anqn
密 码:anqn.com
 

4.1.2 栈与系统栈

更新时间:2008-8-26 0:10:56
责任编辑:阿loosen
热 点:
4.1.2 栈与系统栈

从计算机科学的角度来看,栈指的是一种数据结构,是一种先进后出的数据表。栈的最常见操作有两种:压栈(PUSH)、弹栈(POP);用于标识栈的属性也有两个:栈顶(TOP)、栈底(BASE)

可以把栈想象成一摞扑克牌。

PUSH:为栈增加一个元素的操作叫做PUSH,相当于在这摞扑克牌的最上面再放上一张。

POP:从栈中取出一个元素的操作叫做POP,相当于从这摞扑克牌取出最上面的一张。

TOP:标识栈顶位置,并且是动态变化的。每做一次PUSH操作,它都会自增1;相反,每做一次POP操作,它会自减1。栈顶元素相当于扑克牌最上面一张,只有这张牌的花色是当前可以看到的。

BASE:标识栈底位置,它记录着扑克牌最下面一张的位置。BASE用于防止栈空后继续弹栈(牌发完时就不能再去揭牌了)。很明显,一般情况下,BASE是不会变动的。

内存的栈区实际上指的就是系统栈。系统栈由系统自动维护,它用于实现高级语言中函数的调用。对于类似C语言这样的高级语言,系统栈的PUSH、POP等堆栈平衡细节是透明的。一般说来,只有在使用汇编语言开发程序的时候,才需要和它直接打交道。

注意:系统栈在其他文献中可能曾被叫做运行栈、调用栈等。如果不加特别说明,本书中所述及的栈都是指系统栈这个概念。请您注意将其与编写非递归函数求解“八皇后”问题时,在自己程序中所实现的数据结构区分开来。

 
相关文章
一日一文章
 
一日一软件
一日一动画