您的位置:首页 > Web前端

剑指offer22--栈的压入弹出序列

2014-11-02 11:20 260 查看
public class IsPopOrder {

/*

* 输入两个整数序列,第一个序列表示压入顺序,判断第二个序列是否为弹出顺序.假设入栈所有数字均不相等

*/

public boolean isPopOrder(int[] line1,int[] line2)

{

if(line1==null || line2==null)

return false;

int point1=0;

Stack<Integer> stack=new Stack<Integer>();

for(int i=0;i<line2.length;i++)

{

if(!stack.isEmpty() && stack.peek()==line2[i])//栈顶元素等于第二个序列元素弹出栈顶元素,否则添加元素到栈

{

stack.pop();

}

else

{

if(point1==line1.length)

return false;

else

{

do

stack.push(line1[point1++]);

while(stack.peek()!=line2[i] && point1!=line1.length);

if(stack.peek()==line2[i])

stack.pop();

else

return false;

}

}

}

return true;

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: