Dator > hur man rekursivt passera i en länkad lista

  • hur man rekursivt passera i en länkad lista


  • Den länkade listan datastruktur är ett kraftfullt alternativ till enkla kedjor . Till skillnad från arrayer kan data läggas snabbt till och tas bort från en länkad lista utan att återskapa listan ett element i taget . Men till skillnad från arrayer , kan data i en länkad lista endast nås i ordning. Du kan göra detta med en enkel slinga eller med en rekursiv ( eller egen ringer ) funktion . Detta kommer att skrivas i Java , men koden kan genomföras på något språk med endast små justeringar för att passa den syntax skillnaderna
    1
    Öppna en textredigerare
    2
    Klistra in följande Java -kod. :



    public class RecursiveLLTraverser {



    public void traverseList ( LinkedList l ) {





    }



    }



    Alla koden kommer att gå inom " traverseList " metoden
    3
    Klistra in följande innanför " traverseList " metoden .



    om ( l. size ( ) == 0 ) återvända ,

    om ( l. size () > 0 ) {

    LinkedList n=l. clone () ;

    Object o=n. removeFirst () ;

    o. doSomething () ;

    traverseList ( n ) ,

    }





    Detta tar en länkad lista och gör en ytlig klon av den med den borttagna första elementet (och några behandling som utförs på det . ) Denna klon är sedan köra genom travers själva listan . Så småningom kommer klon vara tom , i vilket fall passera Lista metoden kommer bara tillbaka

    tips och varningar


  • Alla rekursiva algoritmer med minst två fall : ett basfall , som måste återvända , och en rekursiv fall , vilket minskar datamängden till något lättare hanteras. Ett vanligt fel i rekursiva metoder är att glömma basen fallet . Detta orsakar en oändlig loop som till slut kraschar när datorn tar slut stacken .
  • Rekursiva metoder är beroende av ett system inställning som kallas " stack " som ändras med operativsystem och språk . Detta avsnitt av minne håller reda på alla pågående metoder . Försöker en rekursiv algoritm på en extremt stor lista kan producera stack fel .

Previous:nothing Next:hur du lägger till flera rader till en sträng fält i Visual Basic





Relaterade artiklar


  • Felsökning java
  • Hur beräknar skärningspunkten mellan två linjer i Visual Basic
  • Java-programvara för Windows
  • Varför är binär som används i datorer ?
  • hur man avgör en flerdimensionell array ubound i Visual Basic
  • datorutbildning för Microsoft Certification
  • hur man använder rullningslisten med listboxen i Visual Basic 6.0
  • hur du vill visa ett kalkylblad i Visual Basic uttrycka
  • hur man ändrar en primärnyckel
  • hur du kan visa typer php -fil