1、堆、栈、队列、列表的区别(数据结构)
1)堆:主要用来用new构造的数组和对象(看成是一个装数据的箱子)
特点:后进先出(先进后出)(就像箱子里装的东西,先放进去的在最底下,后放进去的可以先拿出来),在运行时动态分配内存,所以可以动态的分配内存的大小
缺点:因为要在运行时分配内存,所以存取速度比较慢
2)栈:主要存放基本类型的变量和对象引用和类型(看成是一颗倒立的大树,就是我们常说的二叉树)
特点:就是根节点的值为最小(或者最大),常用来实现优先队列,存取速度比较快,栈数据可以共享。
缺点:栈中的数据大小和生存周期是确定的,所以灵活性比较低。
压入栈的操作push,出栈的操纵:pop
3)队列:是一种常用的数据结构(就像一条路只有一个出口和入口,先进去的可以先出来,后进去的要后出来。)
特点:先进先出,数据元素可以随意增减,但是数据元素的顺序不会改变。
4)列表:列表是有方向的,每个列表除了存放元素外,还要存放下一个节点的指针,所以只要知道列表的头指针,就可以遍历所有元素。最后一个节点的指针为空。