数据结构堆和栈的区别

聚客2022-06-19  14

在计算机领域,堆栈绝对是一个不可忽视的概念,在编写C语言程序时会被频繁使用。但是对于大多数C语言初学者来说,栈是一个模糊的概念。那么堆和栈有什么区别呢?

空分布差异

堆栈(操作系统):由操作系统(编译器)自动分配和释放,存储函数的参数值、局部变量的值等。它像数据结构中的堆栈一样工作。堆(操作系统):一般由程序员分配释放。如果程序员不释放它,程序可能会在程序结束时被OS回收。分配方法类似于链表。

堆栈缓存方法的差异

Stack使用一级缓存,调用时通常存储在空中,调用后立即释放。堆存储在二级缓存中,其生命周期由虚拟机的垃圾收集算法决定(一旦成为孤儿就无法收集)。所以调用这些对象的速度比较低。

堆栈数据结构的差异

堆(数据结构):堆可以看成一棵树,比如堆排序。堆栈(数据结构):先进后出的数据结构。

转载请注明原文地址:https://juke.outofmemory.cn/read/370652.html

最新回复(0)