gpt4 book ai didi

c++ - 使用容量受限的队列按顺序列出字符串?

转载 作者:搜寻专家 更新时间:2023-10-31 01:54:48 25 4
gpt4 key购买 nike

我的教授让我们编写单个 char 队列(没有模板,只有 char),我没有遇到太多麻烦就做到了。现在我用它来编写一个驱动程序 (main()),它将打印出序列 ABC 的每个组合。

必须按以下顺序生成字符串:

A
B
C
AA
AB
AC
BA
BB
BC
CA
CB
CC
AAA
AAB
AAC
ABA
ABB
ABC
ACA
ACB
ACC
etc.

队列的 MAX_SIZE = 10,所以它应该在大约 25 个字符串后抛出溢出异常。

提示:

Start with A and B and C in the queue.
“Remove it Display it then Add Add Add ”

这有点道理,但我不知道如何让主控制结构在每次你知道的时候都向上转换一个字符长度(就像一旦它把所有单个字符移动到两倍,然后到三倍,等等)。

最佳答案

这是一种解决方案。很简单。

Queue q;

q.enqueue('A');
q.enqueue('\n');
q.enqueue('B');
q.enqueue('\n');
q.enqueue('C');
q.enqueue('\n');

for (size_t i = 0; i < 25; ++i) {
size_t len = 0;
char str[256];
char c;

while ((c = q.dequeue()) != '\n')
str[len++] = c;

str[len] = '\0';

std::cout << str << std::endl;

for (size_t j = 0; j < len; ++j)
q.enqueue(str[j]);

q.enqueue('A');
q.enqueue('\n');

for (size_t j = 0; j < len; ++j)
q.enqueue(str[j]);

q.enqueue('B');
q.enqueue('\n');

for (size_t j = 0; j < len; ++j)
q.enqueue(str[j]);

q.enqueue('C');
q.enqueue('\n');
}

关于c++ - 使用容量受限的队列按顺序列出字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9203947/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com