제목 설명
두 스택 큐, 완료 큐 푸시 팝 작업을 달성했다. 큐 요소 int입니다.
시간 제한 : C / C ++ 일초, 이초 언어, 다른
공간의 제한 : C / C ++ 32M, 64M 다른 언어
문제 해결 아이디어
스택 기능 : 후 고급
큐 : FIFO가
, 때마다 스택입니다 스택 큐를 사용, 스택은 중간 스택의 도입을 쉽게 구현 될 수있는 요소의 순서를 취소 할 수 있습니다.
두 스택 (AN 인큐하는 디큐)
스택에 원소 A : 인큐 동작
디큐 동작 1. 소자 스택 팝업 차례로 적층 2에 밀어되도록 적층 한 스택 뜻 하단 그것은 스택 2의 스택 상단, 2 스택이 다시 쌓아되었다.
* 참고, 팀 중 논리의 법칙, 스택이 부어 요소 1 스택, 우리는 먼저 스택이 비어 확인해야합니다.
근원
class Solution
{
public:
void push(int node) {
stack1.push(node);
}
int pop() {
int val;
if(stack2.empty())
{
int k;
while(!stack1.empty())
{
k=stack1.top();
stack2.push(k);
stack1.pop();
}
}
val=stack2.top();
stack2.pop();
return val;
}
private:
stack<int> stack1;
stack<int> stack2;
};
보충
C ++ 스택의 원래 방법의 기본적인 사용법 :
- () 밀 : 내측 부재를 밀어 스택;
- ) (POP : 스택에서 팝의 부재;
- ) (빈 : 스택이 진정한 빈 반환하는 경우, 그렇지 않으면 false를 반환;
- 정상은 () : 스택의 상단을 반환하지만 구성원을 제거하지 않는다;
- 크기 () : 스택 엘리먼트의 크기를 리턴;
그 팝업을 정의 할 때 C ++ 스택 () 팝업 회원이 직접 그 가치를 얻을 수 없습니다, 당신은 () 팝업 팝업, 상단 ()와 스택의 상단을 얻을 필요가있다.