欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

java数据结构基础:顺序队列和循环队列

程序员文章站 2022-03-10 07:57:06
目录队列:队列是一种受限制的线性表只允许在表的一端进行插入,另一端进行删除插入的一端称作队尾,删除的一端称作队头具有先进先出的特性顺序队列:队列底层数据采用数组存储设置队头指针front指向队头元素前...

队列:

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

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

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

具有先进先出的特性

顺序队列:

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

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

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

判满:rear == maxsize - 1

判空:rear == front

代码实现:

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

循环队列:

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

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

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

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

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

判空:rear == front

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

代码实现:

总结

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