
在学数据结构时,一定会碰到“堆”,"栈","堆栈","队列"这几个名词,这也是大家很容易搞混淆的几个名词,接下来就这几个名词的区别进行简要介绍。
堆:形象来说,可以将堆看做一棵树的数组对象。堆不是程序编译而是程序运行时动态分配的内存。
栈:它是一种运算受限的线性表。其限制是仅允许在表的一端进行插入和删除运算。
进栈和出栈操作的示意图如下所示:
堆栈:堆栈本身就是栈,它具有后进先出的特点,即最后被放入的元素最先被拿出来。
队列:特殊的线性表,队列采用先进先出的方式。
堆是指程序运行时申请的动态内存,而栈只是指一种使用堆的方法(即先进后出)。队列是只能在队头做删除操作、队尾做插入操作,栈只能在栈顶做插入和删除。
