begin { PostFix Find; repeat Expression; Writeln(Output) until Ch = , .'; 13: end { PostFix } . 

## Produces as results: 

ab+cd-* abc*+d­ ab+c*d­ abcd-*+ aa*a*a* bcdca*a*+*b*+a+ 

A binary tree is a data structure that is naturally defined in recursive terms and processed by recursive algorithms. It consists of a finite set of nodes that is either empty or else consists of a node (the root) with two disjoint binary trees, called the left and right subtrees [Reference 6]. Recursive procedures for generating and traversing binary trees naturally reflect this mode of definition. 

Program 11.6 builds a binary tree and traverses it in pre-, in-, and postorder. The tree is specified in preorder, i.e., by listing the nodes (single letters in this case) starting at the root and following first the left and then the right subtrees so that the input corresponding to Figure ll.i IS: 

where a point signifies an empty subtree. 

## ll.A.4. Procedural parameters 

abc .. de .. fg ... hi. . jkl. .m .. n .. 

We can rewrite Program 11.6 to illustrate passing procedures as parameters. Procedural parameters appear in the formal parameter list of procedures and functions as procedure headings. In the corresponding actual parameter list only the procedure identifier must be specified. Program 11.7 illustrates this as well as the passing of actual string values to conform ant-array parameters. 

