只看头尾下标为何分不清

循环队列里只比较 head 和 tail,分不清满和空,因为【0】。

开始练习 →

通常怎么解决这个歧义

第 1 步:空:head、tail 在同一格 第 2 步:放进第 1 个,tail 往后挪 第 3 步:放进第 2 个,tail 往后挪 第 4 步:放进第 3 个,tail 往后挪 第 5 步:放进第 4 个,tail 往后挪 第 6 步

开始练习 →

用计数法判满的条件

用「另存一个计数」的做法,满的条件是:计数【0】。

开始练习 →

排满四个之后满了没有

运行下面这段程序: #include <iostream> #include <string> #include <vector> using namespace std; struct CQueue

开始练习 →

全叫走之后空了没有

运行下面这段程序: #include <iostream> #include <string> #include <vector> using namespace std; struct CQueue

开始练习 →

写出判空和判满

补全 is_empty 和 is_full。容量 4,排进 4 个人之后,输出它满了没有。 (本题用 g++ -std=c++17 -O0 编译。)

开始练习 →

满了还往里排得挡住

补全 enqueue:满了就不写入、返回 队列已满,没满才正常排进去并返回 已排上。容量 4,排进 4 个人之后再排「北辰」,输出这次的结果。 (本题用 g++ -std=c++17 -O0 编译。)

开始练习 →

空了还叫号也得挡住

补全 dequeue:空了返回 队列为空,否则正常取走队头。排进 2 个人,却连叫三次,输出第三次的结果。 (本题用 g++ -std=c++17 -O0 编译。)

开始练习 →

双端队列比队列多了什么

第 1 步:中间先有一个 7 第 2 步:push_back(5):放到右边 第 3 步:push_front(3):放到左边 第 4 步:pop_front:从左边拿走 3 第 5 步:pop_back:从右边拿走 5 第 6 步:两头都

开始练习 →

拿双端队列当栈怎么用

想用双端队列当栈使,做法是【0】。

开始练习 →