栈、队列、表——顺序结构

顺序栈 顺序队列
一个头 一个头一个尾

顺序队列 :不断地入队出队会导致假满状态 即有些空间被浪费了
循环队列(如何让数组循环,除余) 能解决顺序队列假满状态的问题 需要注意的是:
1.如何判断空满两状态:
(1)count 故需多开一个空间
(2)留一个位置 或 front指向前一个
具体讨论:
①不留一个位置且front不指向前一个:
满为front == rear;
空为front和rear差1
此法相比节省了空间

②不留一个位置但front指向前一个:
根据最后一次操作判断:可设置一个判断值,观察最后是front碰上rear 还是rear碰上front。
在append中是rear碰上front,故可设判断 若 rear == front,flag怎样
在serve中是front碰上rear,故同理
但此法仍要多开一个空间 为判断值。

③留一个位置且front指向前一个:
满为front 和 rear 差1;
空为front == rear
要浪费一个空间
④留一个位置但front不指向前一个:
满rear和front差2;
空为front==rear
要浪费一个空间

猜你喜欢

转载自blog.csdn.net/qq_43229056/article/details/89469138