Welkom op de Nederland Computer Kennisnetwerk!  
 
Zoeken computer kennis
Home Hardware Netwerken Programmering Software Computerstoring Besturingssysteem
Computer Kennis >> Programmering >> C /C + + Programming >> Content
Hoe maak je een Binary Tree in C Creëren
Binaire bomen in C zijn een goede manier om dynamisch gegevens voor eenvoudig zoeken te organiseren . Echter , ze vereisen een hoop werk te behouden . Instructies
Maak de Binary Tree

Structuur 1 uw binaire boom . Elke binaire boom zal een structuur nodig , zelfs als het slechts een variabele . Kies een naam , gebruik dan typedef om het te maken :

 typedef struct student_data STUDENT_DATA ; 
2

Definieer de structuur . Omvatten twee pointers naar dezelfde structuur :

 struct student_data { int student_id ; int student_grade ; STUDENT_DATA * links , * rechts; } ; 
3

Wijs een pointer naar deze datastructuur , initialiseren het aan NULL , om de boom een hoofd zijn :

 STUDENT_DATA * leerlingen = NULL ; 
In de Binary Tree
4

toewijzen twee tijdelijke pointers naar de datastructuur :

 STUDENT_DATA * new_student , * cur_student ; 

Gebruik malloc 5 ( ) om een ​​nieuw element te maken , altijd te controleren op een fout :

 if ( ( new_student = malloc ( sizeof ( STUDENT_DATA ) ) ) == NULL ) { abort ( ) ; } 
6

Bevolken velden het nieuwe element . Stel haar links en rechts velden NULL :

 new_student - > student_id = NEWID ; new_student - > student_size = newsize ; new_student - > links = NULL ; new_student - > rechts = NULL ; 
7

Beschouw het hoofd variable . Als de kop variabele NULL is , dit is het eerste element toegevoegd aan de boom , dus stel het hoofd variabele om te wijzen op het, en je bent klaar :

 indien { studenten = new_student ; return ;} < ( studenten ! ) br > 

Start 8 aan de top van de boom :

 cur_student = studenten , terwijl ( cur_student ) { 
9

Behandel de dubbele vermelding als de nieuwe waarde en de huidige waarde gelijk zijn :

 if ( NEWID == cur_student - > student_id ) { abort ( ) ; } 

Deal met ongelijke waarden 10 . Als de nieuwe waarde lager is dan de huidige waarde van de nieuwe element gaat links . Voeg het onmiddellijk als er niets aan de linkerzijde . Anders , traverse naar links en loop :

 if ( NEWID student_id ) { if ( cur_student - > links == NULL ) { cur_student - > links = newstudent ; return 1 ; } cur_student = cur_student - > links; 
11

Doe hetzelfde aan de rechterkant, anders :

 } else {if ( cur_student - > rechts == NULL ) { cur_student - > rechts = newstudent ; return 1 ; } cur_student = cur_student - > rechts ; } } < br > 
Zoek de Binary Tree
12

Maak een tijdelijke variabele wijst naar de datastructuur :

 STUDENT_DATA * cur_student ; 
13

Stel uw tijdelijke variabele aan het hoofd variabel :

 cur_student = students_head ; 

Loop 14 door de elementen , het controleren op de gewenste waarde :

 terwijl ( cur_student ) { if ( cur_student - > student_id == 15 ) { return cur_student - > student_grade ; } 

Tak 15 naar links of rechts , en loop, als het niet gevonden :

 if ( cur_student - > student_id cur_student = cur_student - > rechts ; } else { cur_student = cur_student - > links; } 
16

Kijk of de lus eindigt Als dat zo is , betekent dit dat je nooit gevonden het item : .

 } return 0 ; 
Clean Up
17

deallocate de binaire boom wanneer uw programma eindigt , zo niet alle besturingssystemen dit automatisch zal behandelen dit kan het beste gebeuren met behulp van een recursieve functie : .

 leegte deallocate_binary_tree ( STUDENT_DATA * boom) { 
18

opvolgen: als er is geen boom , er is niets te doen :

 als return ; 
19

deallocate de linker en rechter substructuren recursief ( boom ! ) :

 deallocate_binary_tree ( boom - > links) ; deallocate_binary_tree ( boom - > rechts ) ; 
20

deallocate het element , en je bent klaar :

 gratis ( boom) ; } 

Previous: Next:
  C /C + + Programming
·Hoe Software Requirements Docu…
·Hoe maak je een nieuw DAT- bes…
·Hoe de strchr functie in gebru…
·Hoe je Visual Studio gebruiken…
·Een DLL toevoegen aan een CPP …
·3D Games Schepper Tutorial 
·Hoe je alle DataGrid evenement…
·Hoe maak je een Vector Terugke…
·Hoe kan ik een object in Visua…
  Related Articles
Hoe maak je een Combo Box Maak in Visual…
Hoe maak je een Check Box Maak in Visual…
Hoe maak je een tekstvak maken in Visual…
Hoe maak je een optie Box in Visual Basi…
Hoe maak je een schijf keuzelijst in Vis…
Hoe kan ik een keuzelijst maken in Visua…
Hoe kan ik een Picture Box Maak in Visua…
Hoe een bestand keuzelijst Maak in Visua…
Hoe kan ik een afbeelding Box Maak in Vi…
  Programmering Articles
·Hoe je Apache configureren voor Javascri…
·Hoe een muis gebruiken in uw QBASIC Prog…
·Hoe je afbeeldingen combineren Van Twee …
·Hoe te Datum Pull Out van de MySQL datab…
·Hoe te Concurrent Access naar een method…
·Hoe te Infinity gebruiken in Java 
·Hoe te testen als u bent aangesloten op …
·Hoe maak je een Float converteren naar h…
·Gereedschappen voor Client Server Develo…
Copyright © Computer Kennis http://www.nldit.com