Om du kodning i C + + eller C # , kan du ibland behöva bygga ett binärt träd rekursivt . Detta genererar lövnoder från botten och upp , något som de flesta andra kodning plattformar inte tillåter . Om du behöver för att bygga trädet rekursivt från användarens input av något slag , kan du göra det här också, men det kräver ett extra kodavsnitt . Du behöver bara integrera koden användarens input i de binära kommandon direkt , så att användaren tillfrågas om deras bidrag när du kör funktionen . Instruktioner
1
Öppna din C + + eller C # -projektet .
2
Kopiera följande kod där du vill att trädet ska genereras . Detta är den viktigaste byggstenen för en grundläggande rekursiv binärt träd :
class Tree { private : Node * start , Node * newNode , Node * ström , Node * tidigare , Node * nyckel , Node * keyPrevious ; int TreeSize , int value ; allmänheten : void createTree ( int TreeSize ) {if ( TreeSize == 1 ) { current = start , tidigare = ström ; } else { createTree ( TreeSize - 1 ) , medan ( ström - > getLeft ( ) = ! NULL ) { förra = ström , ström = ström - > getLeft ( ) ;} ström - > setLeft ( ny nod ( + + value ) ) , tidigare = ström , ström = ström - > getLeft ( ) ; cout < < " ström : " << ström - > getValue ( ) << " " << " tidigare : " << föregående - > getValue ( ) < < endl ; } } Tree ( int size ) { TreeSize = storlek , värde = 0 ; start = null; tidigare = ström , newNode = new Node ( värde ) , start = newNode ; cout << " start : " ; << start - > getValue ( ) << endl; createTree ( TreeSize ) ;} };
int main ( ) { XXXXXXXXXXXXXXX } Addera 3
Byt avsnittet märkt " XXXXXXXXXXXXXXX " med ditt användarnamn input kod . Binära träd ingång allmänhet skulle begära en numerisk variabel till exempel hur många " blad " noder att börja med och /eller avsluta med . Denna kod kommer att kallas av funktionen innan trädet genereras .
4
spara koden .