이 글은 js에서 큐를 구현하기 위해 두 개의 스택을 사용하는 알고리즘을 공유합니다. 내용이 매우 좋습니다. 도움이 필요한 친구들이 참고할 수 있기를 바랍니다.
두 개의 스택을 사용하여 대기열을 구현하고 대기열의 푸시 및 팝 작업을 완료합니다. 대기열의 요소는 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(); }
jQuery에서 $() 함수를 사용하는 방법#🎜 🎜 #
위 내용은 js에서 두 개의 스택을 사용하여 대기열을 구현하는 알고리즘의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!