当前位置:秒懂百科馆 >

生活常识

> 堆栈的区别

堆栈的区别

堆栈的区别:

堆栈都是一种数据项按序排列的数据结构,只能在一端(称为栈顶(top))对数据项进行插入和删除。在单片机应用中,堆栈是个特殊的存储区,主要功能是暂时存放数据和地址,通常用来保护断点和现场。

所有的数据存入或取出,只能在浮动的一端(称栈顶)进行,严格按照“先进后出”的原则存取,位于其中间的元素,必须在其栈上部(后进栈者)诸元素逐个移出后才能取出。

1、空间分配不同:栈由操作系统自动分配释放,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。

堆栈的区别

堆(操作系统)一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收,分配方式倒是类似于链表。

2、缓存方式不同:栈使用的是一级缓存,他们通常都是被调用时处于存储空间中,调用完毕立即释放。

而堆是存放在二级缓存中,生命周期由虚拟机的回收算法来决定(并不是一旦成为孤儿对象就能被回收)。所以,调用这些对象的速度要相对来得低一些。

3、数据结构不同:堆可以被看成是一棵树,如堆排序;栈是一种先进后出的数据结构。

标签: 堆栈
  • 文章版权属于文章作者所有,转载请注明 https://mdbkg.com/sheng/ekoxml.html