Binaire bomen (BTS ) zijn datastructuren gebruikt door computerprogrammeurs wiens software moet middelgrote tot grote data vertegenwoordigen sets in een georganiseerde , gestructureerde manier . Een BT bestaat uit een bovenliggende node met een maximum van twee optionele kind knooppunten : een linker en een rechter kind kind . Toepassingsspecifieke gegevens structuren zoals search bomen , afvalbergen en expressie bomen zijn gewoon verzamelingen van individuele BTs elkaar in een collectieve dataset te vormen . Er zijn drie verschillende methoden voor het doorkruisen van BTs : preorder traversal , inorder traversal en postorder traversal . Preorder traversal Preorder traversal bezoekt boom knooppunten in deze volgorde : ouder , kind links , rechts kind . Sommige toepassingen van preorder traversal zijn de evaluatie van uitdrukkingen in prefix notatie en de verwerking van de abstracte syntax bomen door compilers . De volgende pseudocode toont de exacte procedure voor een preorder traversal : ---------------------- PROCEDURE preorder ( Binary_Tree_Node T ) BEGINProcessNode ( T ) if ( linker kind T's is NOT NULL ) BEGINPreOrder ( linker kind T's ) endif ( T's rechts kind is NOT NULL ) BEGINPreOrder ( T's rechts kind ) ENDEND Inorder Traversal Inorder traversal bezoekt boom knooppunten in deze volgorde : linker kind, ouder , rechts kind . Binary search bomen ( een speciaal type BT ) gebruiken inorder traversal om al hun gegevens in alfanumerieke volgorde af te drukken . De volgende pseudocode toont de exacte procedure voor een inorder traversal : ---------------------- PROCEDURE Inorder ( Binary_Tree_Node T ) BEGINIf ( T's links kind is NOT NULL ) BEGINInOrder ( linker kind T's ) ENDProcessNode ( T ) Als ( T's rechts kind is NOT NULL ) BEGINInOrder ( T's rechts kind) ENDEND ------------------- - Postorder traversal Postorder traversal bezoekt boom knooppunten in deze volgorde : linker kind , rechts kind, ouder . Een populaire toepassing voor het gebruik van postorder traversal is het evalueren van expressies in postfix notatie . De volgende pseudocode toont de exacte procedure voor een postorder traversal : ---------------------- PROCEDURE Postorder ( Binary_Tree_Node T ) BEGINIf ( T's links kind is NOT NULL ) BEGINPostOrder ( linker kind T's ) endif ( T's rechts kind is NOT NULL ) BEGINPostOrder ( T's rechts kind) ENDProcessNode ( T ) END ------------------- -
|