1、堆和栈 1)堆(完全二叉树,可以看成一棵树的数组对象)是指程序运行时申请的动态内存,而栈只是指一种使用堆的方法(即先进后出); 2)堆是在程序运行时,而不是在程序编译时,申请某个大小的内存空间; 3)栈区由编译器自动分配释放,堆区由程序员分配释放; 2、栈和队列 1)栈栈的插入和删除操作都是在一端进行的(只允许在表尾进行插入和删除),而队列的操作却是在两端进行的(在表尾插入,表头删除); 2)栈是先进后出,队列是先进先出。