队列和栈的区别 &&堆区和栈区

1.栈的插入和删除操作都是在一端进行的,而队列的操作却是在两端进行的。

2.队列先进先出,栈先进后出。

3.栈只允许在表尾一端进行插入和删除,而队列只允许在表尾一端进行插入,在表头一端进行删除


内存分区:

栈区(stack)— 由编译器自动分配释放,存放函数的参数值,局部变量的值等。

连续区域。没有碎片问题,效率高。动态分配和静态分配

堆区(heap) — 一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收。

不连续区域。碎片问题,效率低。动态分配。

数据结构:

堆(数据结构):堆可以被看成是一棵树,如:堆排序;

栈(数据结构):一种先进后出的数据结构。

你可能感兴趣的:(队列和栈的区别 &&堆区和栈区)