JavaScript는 재귀적 방법을 사용하여 스택 요소를 뒤집습니다.
Apr 02, 2018 am 09:39 AM먼저 면접 질문을 살펴보겠습니다. 질문은 다음과 같습니다. 스택이 있고, 요소 1, 2, 3, 4, 5를 한 번에 밀어 넣으면 결과는 [1, 2, 3]입니다. , 4, 5] 이제 재귀 방법을 사용하여 스택의 요소를 뒤집을 수 있으며 결과는 [5,4,3,2,1]입니다. 질문 요구 사항이 없으면 비교적 간단할 것입니다. arr.reverse()를 사용하여 문제를 직접 해결할 수 있지만, 초보자로서 주의 깊게 연구해야 합니다.
실습 분석
스택 [1, 2, 3, 4, 5]는 두 부분, 즉 스택의 최상위 요소 1과 나머지 부분 [2, 3]으로 구성된 것으로 간주합니다. , 4, 5 ].
[2, 3, 4, 5]를 뒤집어서 [5, 4, 3, 2]로 바꾼 다음 원래 최상위 요소 1을 스택 맨 아래에 놓으면 전체 스택은 다음과 같습니다. 거꾸로 하면 [5, 4, 3, 2, 1]이 됩니다.
다음으로 두 가지를 고려해야 합니다. 첫째, [2, 3, 4, 5]를 [5, 4, 3, 2]로 바꾸는 방법입니다. 우리는 [2, 3, 4, 5]가 스택의 최상위 요소 2와 나머지 부분 [3, 4, 5]의 두 부분으로 구성되어 있다고 생각합니다.
먼저 [3, 4, 5]를 뒤집어 [5, 4, 3]이 된 다음 이전 최상위 요소 2를 스택 맨 아래에 놓아 [5, 4, 3, 2가 됩니다. ].
[3, 4, 5]를 뒤집는 방법에 대해... 많은 독자들이 이것이 재귀라고 생각할 수도 있습니다. 즉, 스택을 반전시키려고 할 때마다 현재 스택의 최상위 요소가 튀어나오고, 나머지 요소로 구성된 스택을 반전시키고, 마지막으로 남은 요소로 구성된 스택의 맨 아래에 이전 최상위 요소를 배치합니다. 재귀 종료 조건은 남은 스택이 비어 있다는 것입니다
코드 웨이브 표시
//这个函数的作用是把栈中的元素展开 function reverseStack(arr){ if( arr.length != 0 ) { var topItem = arr.pop() reverseStack(arr) pushStack(arr, topItem) } return arr}//这个函数的作用是把函数进行颠倒 function pushStack(arr, item){ else{ console.log(arr) if(arr.length == 0){ arr.push(item) }
관련 권장 사항:
위 내용은 JavaScript는 재귀적 방법을 사용하여 스택 요소를 뒤집습니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

인기 기사

인기 기사

뜨거운 기사 태그

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











C++ 함수의 재귀적 구현: 재귀적 알고리즘과 비재귀적 알고리즘의 비교 분석?

간단한 JavaScript 튜토리얼: HTTP 상태 코드를 얻는 방법
