Datamaskin
  | Hjem | Hardware | Nettverk | Programmering | Software | Feilsøking | Systems | 
Programmering  
  • C /C + + Programming
  • Computer Programmeringsspråk
  • Delphi Programming
  • Java Programming
  • JavaScript Programmering
  • PHP /MySQL programmering
  • Perl Programming
  • Python Programming
  • Ruby Programming
  • Visual Basics Programming
  •  
    Datamaskin >> Programmering >> Computer Programmeringsspråk >> Content
    Hvordan lagre et binært søketre til en fil
    A binært søketre er en datastruktur der registreringer av data , som kalles "noder " har pekere til andre noder , kalt " barn ". Dette gir nodene , da tegnes ut , en form som ligner på et slektstre . Noder mottar sin sted i treet basert på om de skulle evalueres som er større enn eller mindre enn andre noder . Venstre barn er alltid mindre enn foreldrene deres, høyre barn alltid more.Binary søk trær er viktige i informatikk fordi de kan være både sortert og søkte i gjennomsnitt i O ( n log n ) tid . Du trenger
    Compiler
    Eksisterende binært søketre
    Vis flere instruksjoner
    en

    Lag en butikk funksjon som mottar rotnoden . Når du handler med trær i informatikk , vil den mest effektive algoritmen nesten alltid være rekursiv og lagring av treet til en fil vil ikke være noe unntak . Her er et eksempel skjelett av den rekursive butikken funksjon ( i Java) . Public void butikken ( Node n ) kaster IOException { ... }
    2

    skrive data på rotnoden til fil . Dette vil bruke "pre -order traversering " (Root , Venstre Child, Høyre Child ) for å gå gjennom alle nodene i treet , fordi denne metoden for traversering vil gjøre det lettest å rekonstruere tre fra rekkefølgen av nodene i filen . Den rekursive funksjonen ser nå slik ut : public void butikken ( Node n ) kaster IOException { write ( savefile , n ) ;} butikken skal kalle seg med den venstre Child : public void butikken ( Node n ) kaster IOException { write ( savefile , n ) ; butikken ( n.left ) ;} butikken skal kalle seg med Høyre Child : public void butikken ( Node n ) kaster IOException { write ( savefile , n ) ; butikken ( n.left ), butikk ( n.right ); }
    3

    Dobbeltsjekk at funksjonen passerer den rekursive sjekkliste. For å forhindre stakkoverflytfeil , sjekk alltid at en rekursiv funksjon oppfyller følgende vilkår: Har funksjonen ha en exit stat? Ja, så lenge treet er ikke av uendelig dybde , til slutt vil det komme en node som har verken venstre eller høyre barn og vil exit.Does den hver iterasjon av funksjonen flytte nærmere avkjørselen staten? Ja , forutsatt at treet ikke er sirkulær og ingen node har en av sine egne forfedre som en barn.Den funksjon passerer sjekkliste .
    4

    Rekonstruer fra filen. Når det gjelder tid å laste treet tilbake fra filen , vil du bare sette inn hver node i treet som den er lastet fra filen ved hjelp av standard innsetting algoritme . Dette bør starte ved roten og jobbe seg ned ved hjelp av pre -order traversering , plassere den nye noden i den første tomme rom hvor det vil passe . Dette bør rekonstruere tre nøyaktig slik det opprinnelig ble komponert i O ( n log n ) i gjennomsnitt.

    früher :

     Weiter:
      Relatert Artike
    ·Hvordan du redigerer en Registry Med Austrumi 
    ·Hvordan skrive og konvertere pund til unser i datasprå…
    ·Hvordan skjule en tom DIV 
    ·Hvordan gjenopprette en DAT File 
    ·Hvordan identifisere klasser for Air Traffic Control Sy…
    ·Slik Send en e-post vedlegg med en Command Line 
    ·The Low Pass funksjon i MATLAB 
    ·Hvordan koble en direkte Tandem til en MVS 
    ·Slik konverterer BigInteger å Int 
    ·Hvordan bli kvitt Tall i COBOL 
      Anbefalte artikler
    ·Hvordan sette opp en tavle med Java Applets 
    ·Hva er de forskjellige flytskjema Structures 
    ·Hvordan skrive et program i C for metriske konvertering…
    ·Slik fjerner linjeskift i C 
    ·Slik konverterer String til InputStream i Java 
    ·Hvordan lage en Kvadratrotfunksjon i Java 
    ·Hvordan Return JSON Bruke PHP 
    ·Hvordan å analysere e-post med VBS 
    ·Hvordan endre fokuseringen i Java 
    ·PHP Helper Funksjoner 
    Copyright ©  Datamaskin  http://www.datamaskin.biz/