栈和队列

来源:互联网 发布:安卓和python 编辑:程序博客网 时间:2024/05/20 07:38

栈是限定仅在表尾进行插入和删除操作的线性表

(一)概念

1.允许插入和删除的一端称为栈顶,另一端称为栈底

2.栈又称为后进先出的线性表

3.栈的插入操作,叫做进栈

4.栈的删除操作,叫做出栈

(二)顺序存储结构——顺序栈

1.下标为0的一端作为栈底

2.两栈共享空间:让一个栈的栈底作为数组的始端,即下标为0处,另一个栈的栈底为数组的末端,即下标为数组长度n-1处

(三)链式存储结构——链栈

1.栈顶放在单链表的头部

PS:对比一下顺序栈跟链栈,进栈出栈的时间复杂度是一样的,都是O(1)


队列是只允许在一端进行插入操作,而在另一端进行删除操作的线性表

(一)概念

1.允许插入的一端称为队尾,允许删除的一端称为队头

2.队列又称为先进先出的线性表

3.队列的插入操作,叫做入队

4.队列的删除操作,叫做出队

(二)顺序存储结构——顺序队列

1.数组下标为0的一端就是队头

2.入队操作只需在队尾增加元素,不需要移动任何元素,时间复杂度为O(1)

3.出队操作需要队列中的所有元素向前移动,时间复杂度为O(n)

PS:循环队列

1.我们将队列的头尾相接的顺序存储结构称为循环队列

2.队头指针指向队头元素,队尾指针指向队尾元素的下一个位置

(三)链式存储结构——链式队列

1.队头指针指向头结点,队尾指针指向终端结点


0 0
原创粉丝点击