binære trær (BTS ) er datastrukturer som brukes av programmerere som programvaren må representere middels til store datasett i en organisert og strukturert måte. En BT består av en forelder node med maksimalt to valgfrie underordnede noder : en venstre barn og en rett barnet . Bruksspesifikke datastrukturer som søk trær , hauger og uttrykk trær er rett og slett samlinger av individuelle BTs knyttet sammen for å danne en kollektiv datasett. Det er tre forskjellige metoder for traversering BTs : preorder traversering , inorder traversering og Postorder traversering . Preorder traversering
Preorder traversering besøker tre noder i denne sekvensen : forelder, venstre barn , ikke sant barnet . Enkelte programmer i preorder traversering er evalueringen av uttrykk i prefiks notasjon og behandling av abstrakte syntaks trær ved kompilatorer . Følgende pseudokode viser den nøyaktige fremgangsmåten for en preorder traversering : en
---------------------- PROSEDYRE preorder ( Binary_Tree_Node T) BEGINProcessNode ( T) if ( T venstre barn er IKKE NULL) BEGINPreOrder (T venstre barn ) endif (T rett barnet er NOT NULL ) BEGINPreOrder (T rett barnet ) SluttSlutt
inorder traversering
< p > inorder traversering besøker tre noder i denne rekkefølgen: venstre barn, foreldre , rett barnet . Binære søk trær ( en spesiell type BT ) bruker inorder traversering å skrive ut alle sine data i alfabetisk rekkefølge. Følgende pseudokode viser den nøyaktige fremgangsmåten for en inorder traversering : en
---------------------- PROSEDYRE Inorder ( Binary_Tree_Node T) BEGINIf (T venstre barnet er NOT NULL ) BEGINInOrder (T venstre barn ) ENDProcessNode ( T) Hvis (T rett barnet er NOT NULL ) BEGINInOrder (T rett barnet ) SluttSlutt ------------------- -
Postorder traversering
Postorder traversering besøker tre noder i denne rekkefølgen: venstre barn , rett barn, foreldre . Et populært program for bruk av Postorder traversering er å evaluere uttrykk i postfix notasjon . Følgende pseudokode viser den nøyaktige fremgangsmåten for en Postorder traversering : en
---------------------- PROSEDYRE Postorder ( Binary_Tree_Node T) BEGINIf (T venstre barnet er NOT NULL ) BEGINPostOrder (T venstre barn ) endif (T rett barnet er NOT NULL ) BEGINPostOrder (T rett barn ) ENDProcessNode ( T) SLUTT ------------------- -