首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

关于堆栈的有关问题

2012-08-09 
关于堆栈的问题书上常常说,所谓堆栈其实是指的栈,叫堆栈是因为历史原因,哪位有经验的大神能告诉小弟,怎么

关于堆栈的问题
书上常常说,所谓堆栈其实是指的栈,叫堆栈是因为历史原因,哪位有经验的大神能告诉小弟,怎么个历史原因?

[解决办法]
可以理解为 stack 的翻译原因吗? 栈,堆....

或者,不同的书上是不同的.
比如,数据结构中,这个就是 栈.
c相关的书, 那就是 栈帧和堆...
[解决办法]
在说这个之前先明白堆栈其实讲的是堆和栈两个概念,但是我们通常所说的堆栈只是指栈。

内存分配(操作系统)中的堆与栈:

堆:由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收,分配方式倒是类似于链表。其实堆里面是内存中可用空间的碎片,他们之间以链表的形式连在一起。

栈:由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。(其操作方式类似于数据结构中的栈,是数据结构中抽象栈的一个实例,这就是为什么叫栈区而不叫其他区什么的)。


数据结构中的堆与栈:

堆:堆是一种经过排序的树形数据结构,每个结点都有一个值。通常我们所说的堆的数据结构,是指二叉堆。堆的特点是根结点的值最小(或最大),且根结点的两个子树也是一个堆。 总结数据结构中的堆是一颗树而不是一个数组。(用的非常少,个人觉得。)

栈:数据结构中的栈是一个更抽象的概念,它指所有那些具有后进先出特点的容器。具体实现可以有不同,但特征都是一样的。(栈实际上就是满足后进先出的性质的数学或数据结构。)简单的说就是具有这个特征的都叫栈,是一个很广泛的概念。

热点排行