algorithm - 算法分配的队列问题
问题描述
我试图弄清楚这一点,
'编写算法isQSimlar(Q1,Q2)的伪代码来检查两个队列Q1和Q2是否相似。(即两个队列中的相同元素和相同的元素顺序)在比较结束时,两个队列应该看起来没有变化。您可以对队列使用的唯一基本操作如下:addQueue()、deleteQueue()、Qsize()、Rear() 和 Front()。
所以我到目前为止所拥有的,
isQsimilar(Q1,Q2)
char check1;
char check2;
int n = Q1.Qsize();
int i = Q2.Qsize();
if (n != i)
return false;
else
while (n > 0)
{
check1 = Q1.front();
check2 = Q2.front();
if (check1 != check2)
return false;
Q1.deleteQueue(check1);
Q2.deleteQueue(check2);
check1 = Q1.rear();
check2 = Q2.rear();
Q1.addQueue(check2);
Q2.addQueue(check2);
n--;
}
return true;
我不确定我是否正确使用了这些操作,或者我正在做的事情是否正确。我是在正确的方向还是我错过了什么?
先感谢您。
解决方案
您无需检查后方元素。我假设front()
只偷看前面的元素而不删除,而deleteQueue()
从队列中删除前面的元素
check1 = Q1.front();
check2 = Q2.front();
if (check1 != check2)
return false;
Q1.deleteQueue();
Q2.deleteQueue();
Q1.addQueue(check1);
Q2.addQueue(check2);
推荐阅读
- kotlin - Kotlin - 确保收集操作在开始下一个之前完成
- macos - 安装 MacOs Mojave 的 Tex 包后,kableExtra 的功能不再起作用(Rmarkdown)
- javascript - 如何在 React js 中禁用当前和过去一周的日期?
- swift - 使用 GIF 的动画启动屏幕
- javascript - 我正在尝试创建一个包含 3 个 JavaScript 对象的网页
- error-handling - 哪种错误处理模式更好:一个 try/catch 围绕大代码块,许多 try/catch 围绕较小的代码块?
- jquery - $(this).val() 方法没有返回所选 id 的正确值
- wordpress - 阻止允许域的内容安全策略标头
- c++ - std::distance 很慢,如何改进?
- node.js - GraphQL 突变返回 null