JavaScript는 재귀적 방법을 사용하여 스택 요소를 뒤집습니다.

零到壹度
풀어 주다: 2018-04-02 09:39:24
원래의
1766명이 탐색했습니다.

먼저 면접 질문을 살펴보겠습니다. 질문은 다음과 같습니다. 스택이 있고, 요소 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿