Hvis du er koding i C + + eller C #, kan du av og til trenger å bygge et binært tre rekursivt . Dette genererer løvnodene fra bunnen opp , noe de fleste andre koding plattformene tillater ikke . Hvis du trenger å bygge treet rekursivt fra brukerundersøkelser av noe slag, kan du gjøre dette også , men det krever en ekstra del av koden . Du trenger bare å integrere brukerundersøkelser koden inn på binære kommandoer direkte , slik at brukeren blir spurt om deres bidrag når du kjører funksjonen . Instruksjoner
en
Åpne C + + eller C # prosjekt.
2
Kopier følgende kode der du vil at treet skal bli generert. Dette er den viktigste byggesteinen for en grunnleggende rekursiv binært tre : en
class Tre {private : Node * start , Node * newNode , Node * gjeldende; Node * forrige ; Node *-tasten , Node * keyPrevious ; int TreeSize ; int verdi; public : void createTree ( int TreeSize ) { if ( TreeSize == 1 ) { current = start; forrige = gjeldende; } else { createTree ( TreeSize - 1 ) , mens ( current- > getLeft ( ) = ! NULL) { forrige = gjeldende; strøm = strøm - > getLeft (); } current- > setLeft (new Node ( + + verdi )); forrige = gjeldende; strøm = strøm - > getLeft (); cout < < " strøm: " << current- > getValue ( ) << " " << " forrige : " << forrige - > getValue ( ) < < endl ;} } Tre ( int størrelse) { TreeSize = størrelse, verdi = 0; start = NULL ; forrige = gjeldende; newNode = new Node (verdi ) ; start = newNode ; cout << " start : " ; << start - > getValue ( ) << endl; createTree ( TreeSize ) ;} };
int main ( ) { xxxxxxxxxxxxxxx }
3 < p > Erstatt delen merket " xxxxxxxxxxxxxxx " med brukerundersøkelser koden . Binærtreet innspill ville vanligvis be om en numerisk variabel som for eksempel hvor mange " blad " noder å begynne med og /eller slutte med . Denne koden vil bli oppringt av funksjon før treet er generert.
4
Lagre koden .