| Home  | Casa  | Hardware  | Networking  | Programmazione  | Software  | Domanda  | Sistemi  |   
Programmazione  
  • C /C + + Programming

  • Computer Programming Languages

  • Delphi Programming

  • Java Programming

  • Programmazione Javascript

  • PHP /MySQL Programmazione

  • Perl Programming

  • Python Programming

  • rubino Programmazione

  • Nozioni di base di Visual Programming
  •  
    Conoscenza Informatica >> Programmazione >> Computer Programming Languages >> Content
    Come salvare un albero binario di ricerca di un file
    Un albero binario di ricerca è una struttura di dati in cui i record di dati , chiamati "nodi ", hanno puntatori ad altri nodi , chiamati " bambini". Questo dà i nodi , quando disegnò , una forma simile a un albero genealogico . I nodi ricevono il loro posto nella struttura in base al fatto che avrebbero valutare come maggiore o minore di altri nodi . Bambini di sinistra sono sempre meno di loro genitore , i bambini giusti sempre alberi di ricerca more.Binary sono importanti in informatica , perché possono essere entrambi ordinati e ricercati , in media , a O (n log n). Cose che ti serviranno
    Compiler
    esistente binario di ricerca albero
    Show More Istruzioni
    1

    Creare una funzione di memorizzazione che riceve il nodo principale . Ogni volta che avete a che fare con gli alberi in informatica, l'algoritmo più efficace sarà quasi sempre ricorsiva e memorizzare l'albero in un file non farà eccezione . Ecco un esempio di scheletro della funzione di memorizzazione ricorsiva ( in Java) . Negozio public void ( Nodo n ) throws IOException { ... }
    2

    dati scrivere sul nodo principale di file. Questo userà "pre -ordine " ( Root , Sinistra Bambino , figlio destro ) per passare attraverso tutti i nodi dell'albero , perché questo metodo di attraversamento renderà più semplice per ricostruire l' albero da l'ordine dei nodi nel file di . La funzione ricorsiva ora assomiglia a questo : negozio public void ( Nodo n) throws IOException { write ( savefile , n) ; } Conservare deve chiamare se stesso con la sinistra Bambino : negozio public void ( Nodo n ) throws IOException { write ( savefile , n ) ; negozio ( n.left );} Conservare dovrebbe chiamarsi con il figlio destro : negozio public void ( nodo n) throws IOException { write ( savefile , n) ; negozio ( n.left ) ; negozio ( n.right ) ; }
    3

    doppio verificare che la funzione passa la lista di controllo ricorsivo . Per evitare errori di overflow dello stack, controllare sempre che una funzione ricorsiva soddisfa le seguenti condizioni : La funzione ha uno stato di uscita? Sì , finché l'albero non è di profondità infinita , alla fine si raggiungerà un nodo che non ha né un figlio sinistro o destro e verrà exit.Does l' ogni iterazione della funzione avvicinarsi allo stato di uscita? Sì , presumendo che l'albero non è circolare e nessun nodo ha uno dei suoi antenati come funzione child.The passa la lista di controllo .
    4

    Ricostruire dal file . Quando arriva il momento di caricare l' albero indietro dal file, sarà sufficiente inserire ogni nodo nell'albero come viene caricato dal file utilizzando l'algoritmo di inserimento standard. Questo dovrebbe iniziare alla radice e lavorare la sua strada verso il basso con pre -ordine , mettendo il nuovo nodo nel primo spazio vuoto in cui esso si inserisce . Questo dovrebbe ricostruire l' albero esattamente come è stato originariamente composto in O (n log n) , in media .

    Previous :

    next :
      Articoli Correlati
    ·Come Eseguire SSIS dalle stored procedure 
    ·Come utilizzare un InputBox in VBScript 
    ·Procedure operative standard in ambiente Oracle RAC 
    ·Come fare iPSP Applicazioni 
    ·Che cosa è UML Software 
    ·Come ottenere righe di DataGrid in JavaScript 
    ·Come usare curl per catturare il contenuto di una pagin…
    ·Come risolvere un loop infinito 
    ·Come data in SQL 
    ·Differenze tra Prolog e Lisp 
      Articoli in evidenza
    ·MySQL ConnectorJ Tutorial 
    ·Come disattivare Oracle modulo Trace 
    ·Perl & Funzioni radice quadrata 
    ·Come sviluppare un driver di dispositivo per DOS 
    ·PHP valori di trasferimento 
    ·Come fare un orologio in C 
    ·Turbo C Tutorial 
    ·Come convertire manualmente FoxPro per VB6 
    ·Come faccio a creare una macro Documento di Word in Vis…
    ·Come visualizzare informazioni dinamiche sulle pagine W…
    Copyright © Conoscenza Informatica http://it.wingwit.com