Binära träd (BTS ) är datastrukturer som används av programmerare vars mjukvara måste representera medelstora till stora datamängder på ett organiserat och strukturerat sätt . En BT består av en förälder nod med högst två valfria underordnade noder : en vänster barn och ett rätt barn . Applikationsspecifika datastrukturer som sökträd , högar och träd uttryck är helt enkelt samlingar av enskilda sugtransformatorer kopplas samman för att bilda ett kollektiv datamängd . Det finns tre olika metoder för passage sugtransformatorer : preorder passeringslicenser , inorder traversering och Postorder traversering . Preorder Traversal
Förbeställ traversering besöker trädnoder i denna sekvens : förälder , vänster barn , rätt barn . Vissa program för preorder traversering är utvärderingen av uttrycken i prefix notation och bearbetning av abstrakta syntaxträd från kompilatorer . Följande pseudokod visar den exakta proceduren för en preorder traversering :
---------------------- FÖRFARANDE preorder ( Binary_Tree_Node T ) BEGINProcessNode ( T ) Om ( T vänstra barnet inte är null ) BEGINPreOrder ( T vänstra barn ) endif ( T: s rätt barn inte är null ) BEGINPreOrder ( T högra barn ) ENDEND
Inorder Traversal
Inorder traversering besöker trädnoder i denna ordning: vänster barn , förälder , rätt barn . Binära sökträd ( en speciell typ av BT ) använder inorder traversering för att skriva ut alla sina data i alfanumerisk ordning . Följande pseudokod visar den exakta proceduren för en inorder traversering :
---------------------- FÖRFARANDE inorder ( Binary_Tree_Node T ) BEGINIf ( T vänstra barnet inte är null ) BEGINInOrder ( T vänstra barn ) ENDProcessNode ( T ) Om ( T: s rätt barn inte är null ) BEGINInOrder ( T högra barn ) ENDEND ------------------- - Addera ditt Postorder Traversal
Postorder traversering besöker trädnoder i denna ordning: vänster barn , rätt barn , förälder . En populär ansökan om användning av Postorder traversering är utvärdering av uttryck i postfix notation . Följande pseudokod visar den exakta proceduren för en Postorder traversering :
---------------------- FÖRFARANDE Postorder ( Binary_Tree_Node T ) BEGINIf ( T vänstra barnet inte är null ) BEGINPostOrder ( T vänstra barn ) endif ( T: s rätt barn inte är null ) BEGINPostOrder ( T högra barn ) ENDProcessNode ( T ) END ------------------- - Addera