기사 디렉토리
제목 설명
다음 스택을 사용하여 큐 구현 :
- 푸시 (X) - 스택 원소 X
- ) (팝업 - 상단 요소를 제거
- 상단 () - 상단의 요소를 가져옵니다
- ) (빈 - 반환 스택이 비어 있는지
설명 :
- / 다시 들여다이며, 푸시 앞, 크기에서 팝, 이러한 작업은 합법적으로 비어 - 당신은 기본 큐의 작업을 할 수 있습니다.
- 당신이 대기열을 지원하지 않을 수 있습니다 사용하는 언어입니다. 당신은 큐, 표준에 대한 작업만큼 큐를 시뮬레이션 할 목록이나 양단 큐 (양단 큐)를 사용할 수 있습니다.
- 당신은 모든 작업 (예를 들어, 빈 스택에 팝업 작동이나 상단 호출하지 않습니다) 유효하다고 가정 할 수있다.
문제 해결
아날로그와 Linklist 일반적인 기능 (자바)
아이디어 :
메인 키는 일반적으로 사용 LinkedList의 기능, 큐와 스택 기능에 따라 기능의 조합을 지배하는 것이다.
클래스 LinkedList의 포털
주로 세부 사항에 반영 push()
당신은 스택에 값을 입력 할 때 밀어해야 할 때마다 :
- LinkList 꼬리에 값을 넣어 것입니다
- 헤드 노드 (꺼짐
queue.remove()
꼬리에) - 사이클의 두번째 단계 (
队列长度-1
) 회 - 노드를 수행 한 후 새로 추가 된 노드의 머리가 될 것이다.
이 때마다 새로운 요소 재정렬 스택하기 위해 추가되도록 수행된다. 상단 후 및 팝 poll()
과 peek()
헤드 또는 뷰 출력 노드.
class MyStack {
Queue<Integer> queue;
public MyStack() {
queue = new LinkedList<>();
}
public void push(int x) {
queue.add(x);
for(int i = 1; i < queue.size(); i++)
queue.add(queue.remove());
}
public int pop() {
return queue.poll();
}
public int top() {
return queue.peek();
}
public boolean empty() {
return queue.size() == 0;
}
}