请描述如何用2个队列(List,特征:先进先出)实现一个栈(Stack,特征:先进后出)。可用伪代码或代码实现。
上面顺手写错了一点:j<q1.length
思路给你说一下哈:
假设两个队列分别为 q1,q2
q1队列元素为:1,2,3,4,5
那么出列的顺序应该也是 1>2>3>4>5
理想的栈顺序应该是:5>4>3>2>1
那么请q2就起作用了
对q1按倒叙取值(5,4,3,2,1)依次放入到q2中,
for(int i=q1.length-1;i>=0;i--){
for(int j=0;j<q1.length;j++){
q2[j].push(q1[i]);
}
}
那么q2的队列入队顺序就变成了:5,4,3,2,1
for(int i=0;i<q2.length;i++){
alert(q2[i]);
}
只需对q2顺序出列就OK了
思路给你说一下哈:
假设两个队列分别为 q1,q2
q1队列元素为:1,2,3,4,5
那么出列的顺序应该也是 1>2>3>4>5
理想的栈顺序应该是:5>4>3>2>1
那么请q2就起作用了
对q1按倒叙取值(5,4,3,2,1)依次放入到q2中,
for(int i=q1.length-1;i>=0;i--){
for(int j=0;j<q2.length;j++){
q2[j].push(q1[i]);
}
}
那么q2的队列入队顺序就变成了:5,4,3,2,1
for(int i=0;i<q2.length;i++){
alert(q2[i]);
}
只需对q2顺序出列就OK了
可以用 LinkedList.addfirst() 方法给集合添加元素 a,b,c,d 再遍历出来时就是d,c,b,a ,也就用队列先进先出,实现了栈的后进先出
上面的那位张大教主,你这是直接就是对原始数据进行了修改了啊,我觉得楼主要的解决办法肯定不是那样,如果可以修改数据,那还要栈和队列有何用,马丁的方法可用