3栈和队列
栈和队列
堆栈(简称栈):先入后出,后入先出
存储方式:
一个连续的内存单元(类似数组),栈底指针不动,栈顶指针随着数据进出移动。当数据删除时,该空间将被标记为可使用
数组实现:
|
队列:先进先出,后进后出
队尾:插入
队首:删除
单向队列
实现方式
队首指针与队尾指针
入队:移动队尾指针
出队:移动队首指针
注:
为了解决“假溢出”的情况,将队列首尾相接(队尾指针来到队尾,取模)
rear=(rear+1)%maxSize
移动方式:
先放入数据,再移动尾指针
先删除数据,再移动头指针
注:
为了解决队空与队满的相同判定条件问题,留出一个空间(队首指针前的那个)不使用
rear==front 队空
rear=(rear+1)%maxSize==front 队满
|
双向队列
允许从一边进一边出
注:先选定一边进,再选定一边出,之后只能遵循这个操作(根据选择成为栈和单向队列)
数组
|
链表
|
发布于