数组:在内存中存储为连续固定大小空间。
特点:因为是连续空间,所以查找速度快[o(1)]。当增删元素位置不是在数组尾时,会导致移动数组元素,加大操作量,降低速度。
链表:在内存中存储不连续,用一个节点记录下一个节点位置,形成连续节点。
特点:查找不方便,需要从头节点开始遍历,尽管做了一些优化:例如,储存头结点、尾节点、节点个数,仍然没有数组方便。但是链表删除速度却很快,双链表只需将节点前后关联删除即可。
栈:(LIFO)栈只允许删除或增加在表尾部(栈顶)。其内部实现可以使用数组或链表。栈的时间复杂度为o(1)。
队列:就像买东西排队一样,先到先得(FIFO)。其特点是只允许在队列尾添加,首部删除。