我在想办法,
'为算法isQSimilar(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);
关于algorithm - 算法分配的排队问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54878464/