[솔 산법] 두 개의 스 택 으로 대기 열 을 실현 합 니 다.

1178 단어
제목 설명
두 개의 스 택 으로 하나의 대기 열 을 실현 하고 대기 열의 Push 와 Pop 작업 을 완성 합 니 다.대기 열 에 있 는 요 소 는 int 형식 입 니 다.
분석 하 다.
두 개의 스 택 이 대기 열 을 실현 합 니 다. 그것 은 바로 하 나 를 들 어가 서 내 는 것 입 니 다. 그리고 문제 에서 두 개의 스 택 의 길이 제한 을 말 하지 않 았 습 니 다. 그러면 두 개의 스 택 s1 과 s2 에 있어 두 가지 주의 점 이 있 습 니 다.
  • s1. push 시 s2 가 비어 있 지 않 고 s1 이 비어 있 으 면 정확 한 순 서 를 확보 하기 위해 s2 의 요 소 를 모두 s1 에 반환 한 다음 s1. push
  • s2. pop 시 s2 가 비어 있 고 s1 이 비어 있 지 않 으 면 정확 한 순 서 를 확보 하기 위해 s1 요 소 를 모두 s2 에 넣 고 s2. pop
  • 코드 구현
    var s1 = [], s2 = [];
    function transferStack(a, b) {
    	while(a.length !== 0){
    		b.push(a.pop());
    	}
    }
    function push(val) {
    	if(s1.length === 0 && s2.length !== 0){
    		transferStack(s2, s1);
    	}
    
    	s1.push(val);
    }
    
    function pop(){
    	if(s1.length !== 0 && s2.length === 0){
    		transferStack(s1, s2);
    	}
    
    	return s2.pop();
    }
    

    좋은 웹페이지 즐겨찾기