帮我理解这个算法(简单)

Tyl*_*aff 2 c++ algorithm queue

我刚刚创建了一个队列类,现在我必须使用它来执行此操作.

编写一个c ++程序,使用A,B和C作为字母生成所有字符串.

必须按以下顺序生成字符串:A B C AA AB AC BA BB BC CA CB CC AAA AAB AAC ABA ABB ABC ACA ACB ACC等

它应该这样做,直到我的队列溢出.

现在,我根本不理解老师建议使用的算法,就是这个.

从队列中的A,B和C开始."删除它显示它然后添加添加添加"

添加添加的东西会让我失望,它如何以这个特定的顺序获得这些字母?

MAK*_*MAK 7

我认为你的老师的意思是"添加A,添加B,添加C".

假设您在队列中有A,B和C. 从队列中弹出第一个并打印出来.这应该打印A.然后你添加一个A. 这为您提供了AA,您可以将其推回到队列中.您还可以添加一个B并将C添加到您最后弹出的字符串(给您AB和AC)并将它们推回到队列中.现在你的队列包含[B,C,AA,AB,AC].接下来,您将弹出B并对其执行相同的操作序列,依此类推,直到您的堆栈中的空间不足为止.