| Hjem | Hardware | Netværk | Programmering | software | Fejlfinding | systemer | 
Programmering  
  • C /C + + Programming
  • Computer Programmeringssprog
  • Delphi programmering
  • Java programmering
  • JavaScript Programmering
  • PHP /MySQL programmering
  • Perl programmering
  • Python Programming
  • Ruby Programming
  • Visual Basics Programmering
  •  
    Computer Viden >> Programmering >> Computer Programmeringssprog >> Content
    Hvordan du lagrer en binær søgning Tree til en fil
    En binær søgning træ er en datastruktur , hvor registreringer af data , kaldet " knuder", har henvisninger til andre knudepunkter , kaldet "børn ". Dette giver knuder , når de tegnes ud , en form, der ligner et stamtræ . Nodes får deres plads i træet baseret på, om de ville vurdere som større end eller mindre end andre noder. Venstre børn er altid mindre end deres forældre , rigtige børn altid more.Binary søgetræer er vigtige i datalogi , fordi de kan være både sorteres og søges i gennemsnit i O (n log n ) tid. Ting du skal
    Compiler
    Eksisterende binær søgning træ
    Vis Flere Instruktioner
    1

    Opret en butik funktion, der modtager roden node. Når du handler med træer i datalogi, vil den mest effektive algoritme næsten altid være rekursive og opbevaring træet til en fil , vil ikke være nogen undtagelse . Her er et udsnit skelet af rekursive butik funktionen ( i Java) . Public void butik ( Node n ) kaster IOException { ... }
    2

    skrive data på rodnoden til fil . Dette vil bruge "pre -order traversal " ( Root , Venstre Child , Højre barn) til at gå igennem alle de noder i træet , fordi denne metode af traversal vil gøre det lettest at rekonstruere træet fra rækkefølgen på knuder i filen . Den rekursiv funktion ser nu sådan ud : public void butik ( Node n ) kaster IOException { write ( savefile , n );} Store burde kalde sig med venstre Child : public void butik ( Node n ) kaster IOException { write ( savefile , n ), lager ( n.left );} Store bør kalde sig med den rigtige Child : public void butik ( Node n ) kaster IOException { write ( savefile , n ), lager ( n.left ), lager ( n.right ) ; }
    3

    Dobbelt -tjek , at funktionen passerer rekursive checkliste. For at forhindre stack overflow fejl , altid kontrollere, at en rekursiv funktion opfylder følgende betingelser : Er funktionen have en exit- stat? Ja , så længe træet ikke er af uendelig dybde , i sidste ende vil nå en node , der hverken har en venstre eller højre barn og vil exit.Does de hver iteration af funktionen flytte tættere på exit staten? Ja , at antage, at træet ikke er cirkelformet , og ingen knude har en af ​​sine egne forfædre som en barnets tarv funktion passerer tjeklisten.
    4

    Genskab fra filen. Når det drejer sig tid til at indlæse træet tilbage fra filen , vil du blot indsætte hver node i træet , som det er indlæst fra filen ved hjælp af din standard indsættelse algoritme. Dette bør starte ved roden og arbejde sig ned ved hjælp pre-order traversal , placerer den nye node i den første tomme plads , som det vil passe. Dette skulle rekonstruere træet præcis som det oprindeligt blev komponeret i O (n log n ) i gennemsnit.

    Forrige :

    næste :
      Relaterede artikler
    ·Sådan Luk Objektegenskaber til en FormView 
    ·Sådan Set Socket Blokering til False 
    ·Min Windows Mobile vil ikke åbne ASHX filer 
    ·Sådan fjernes et Alias ​​i AIX 
    ·Sådan udføres en User Acceptance Test ( UAT ) 
    ·Sådan Refresh TabHost indhold på en Android 
    ·Hvordan du navngiver en variabel ved hjælp af en makro…
    ·Sådan Fordel Xcode i Mac Apps 
    ·Sådan eksporteres ASP.NET DataGrid til Excel 
    ·Sådan Konverter Lowercase til store bogstaver i MIPS A…
      Anbefalede Artikler
    ·Hvordan laver flere efter hinanden følgende Spaces i P…
    ·Sådan bruges en C + + Vector til at gemme data 
    ·Tutorial for LiveWires Python 
    ·Sådan Gør din egen spilmotor 
    ·Hvordan til at returnere en ERRORLEVEL i VBS 
    ·Sådan Konverter Int til Real i SML 
    ·Hvordan man skriver en Make Filer 
    ·Java 1.6 vs . 1,5 
    ·Visual Basic Array Function 
    ·Hvordan at tilføje tekst til en Label på Python 
    Copyright © Computer Viden http://www.computerdk.com