Heim  >  Artikel  >  Web-Frontend  >  JavaScript verwendet eine rekursive Methode, um Stapelelemente umzukehren

JavaScript verwendet eine rekursive Methode, um Stapelelemente umzukehren

零到壹度
零到壹度Original
2018-04-02 09:39:241717Durchsuche

Schauen wir uns zunächst eine Interviewfrage an. Die Frage lautet wie folgt: Es gibt einen Stapel und die Elemente 1, 2, 3, 4, 5 werden auf einmal hineingeschoben. Das Ergebnis ist [1,. 2, 3, 4, 5], jetzt können wir nur noch die rekursive Methode verwenden, um die Elemente im Stapel umzukehren, und das Ergebnis ist [5,4,3,2,1]. Wenn es keine Frageanforderung gibt, wäre dies relativ einfach. Sie können das Problem direkt mit arr.reverse() lösen, aber es ist interessant, nur Rekursion zu verwenden. Als Anfänger muss ich es sorgfältig studieren.

Praktische Analyse

Wir betrachten den Stapel [1, 2, 3, 4, 5] als bestehend aus zwei Teilen: dem obersten Element 1 des Stapels und den restlichen Teilen [2, 3, 4, 5].

Wenn wir [2, 3, 4, 5] umkehren und in [5, 4, 3, 2] umwandeln können und dann das ursprüngliche obere Element 1 auf dem Stapel nach unten legen können, dann vollständig Der Stapel wird auf den Kopf gestellt und wird zu [5, 4, 3, 2, 1].

Als nächstes müssen wir zwei Dinge berücksichtigen: Erstens, wie man [2, 3, 4, 5] in [5, 4, 3, 2] umkehrt. Wir stellen uns [2, 3, 4, 5] einfach so vor, dass es aus zwei Teilen besteht: dem obersten Element 2 des Stapels und dem verbleibenden Teil [3, 4, 5].

Wir müssen nur [3, 4, 5] zuerst umkehren, um [5, 4, 3] zu werden, und dann das vorherige oberste Element 2 unten im Stapel platzieren, was zu [5, 4] wird , 3, 2].

Was die Umkehrung von [3, 4, 5] betrifft ... Viele Leser denken vielleicht, dass es sich hierbei um eine Rekursion handelt. Das heißt, jedes Mal, wenn Sie versuchen, einen Stapel umzukehren, springt das oberste Element des aktuellen Stapels heraus, kehrt dann den aus den verbleibenden Elementen bestehenden Stapel um und platziert schließlich das vorherige oberste Element am unteren Ende des aus den verbleibenden Elementen bestehenden Stapels. Die Bedingung für das Ende der Rekursion ist, dass der verbleibende Stapel leer ist

Eine Codewelle anzeigen

//这个函数的作用是把栈中的元素展开
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)
   }

Verwandte Empfehlungen:

Elemente im Stapel umkehren – Umkehrung des Stapels

Stapel umkehren

Implementierung der Stapeltransposition

Das obige ist der detaillierte Inhalt vonJavaScript verwendet eine rekursive Methode, um Stapelelemente umzukehren. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn