队列:

队列是一种受限制的线性表

只允许在表的一端进行插入,另一端进行删除

插入的一端称作队尾,删除的一端称作队头

具有先进先出的特性

顺序队列:

队列底层数据采用数组存储

设置队头指针front指向队头元素前一个位置,初始值为-1

设置队尾指针rear指向队尾元素,初始值为-1

判满:rear == maxsize – 1

判空:rear == front

代码实现:

顺序队列存在假溢出现象,故使用循环队列替代顺序队列

循环队列:

队列底层数据仍然采用数组存储

为了便于判空和判满,在数组中预留一个空间,认为只留下一个空间的时候队列为满

设置队头指针front指向队头元素,初始值为0

设置队尾指针rear指向队尾元素的后一个位置,初始值为0

判满:(rear + 1) % maxsize == front

判空:rear == front

取得当前队列有效数据个数:(rear + maxsize – front) % maxsize

代码实现:

总结

本篇文章就到这里了,希望能给你带来帮助,也希望您能够多多关注www.887551.com的更多内容!