定义:一种实现了“先进后出”的存储方式。
分类:静态栈(数组)、动态栈(链表)
算法:压栈,出栈;
应用:函数调用、中断、表达式求值、内存分
缓冲处理、走迷宫。
b、队列:
定义:一种实现了“先进先出”的存储结构。分类:链式队列、静态队列(数组)。
静态队列通常都必须是循环队列。
循环队列:
1,静态队列为什么必须是循环队列;
为了让空间(队列大小)保持不变。
2,循环队列需要几个参数:2个 front,rear
3,各参数的含义:
不同场合含义不同:
1):队列初始化:front和rear都为零。
2):队列不为空:
front为第一个有效元素,
rear为最后一个有效元素的下一个元素
3):队列为空:
front和rear相等但不一定为零。
4,入队伪算法:
1):将值存入rear代表的位置;
2):不能写r=r+1,应写r=(r+1)%数组长度
5,出队伪算法:f=(f+1)%数组长度。
6,如何判断队列为空:
front和rear值相等。
7,如何判断队列已满:
1):多增加一个参数,存放有效个数,
2):少存一个元素,长度为n则n-1为满,
if((r+1)%数组长度==f)已满
else 未满