pointer to the relevant root-noderather than having to pass complete copies of whole trees how data structures and pointers are implemented in different programming languages will varyof coursebut the general idea is the same binary tree can be implemented as data record for each node consisting simply of the node value and two pointers to the children nodes then maketree simply creates new data record of that formand rootleft and right simply read out the relevant contents of the record the absence of child node can be simply represented by null pointer recursive algorithms some people have difficulties with recursion source of confusion is that it appears that "the algorithm calls itselfand it might therefore get confused about what it is operating on this way of putting thingsalthough suggestivecan be misleading the algorithm itself is passive entitywhich actually cannot do anything at alllet alone call itself what happens is that processor (which can be machine or personexecutes the algorithm so what goes on when processor executes recursive algorithm such as the size(talgorithm abovean easy way of understanding this is to imagine that whenever recursive call is encounterednew processors are given the task with copy of the same algorithm for examplesuppose that john (the first processor in this taskwants to compute the size of given tree using the above recursive algorithm thenaccording to the above algorithmjohn first checks whether it is empty if it ishe simply returns zero and finishes his computation if it isn' emptythen his tree must have left and right subtrees and (which mayor may notbe emptyand he can extract them using the selectors left(tand right(the can then ask two of his studentssay steve and maryto execute the same algorithmbut for the trees and when they finishsay returning results and respectivelyhe computes and returns + +nbecause his tree has root node in addition to the left and right sub-trees if steve and mary aren' given empty treesthey will themselves have to delegate executions of the same algorithmwith their sub-treesto other people thusthe algorithm is not calling itself what happensis that there are many people running their own copies of the same algorithm on different trees in this examplein order to make things understandablewe assumed that each person executes single copy of the algorithm howeverthe same processorwith some difficultycan impersonate several processorsin such way that it achieves the same result as the execution involving many processors this is achieved via the use of stack that keeps track of the various positions of the same algorithm that are currently being executed but this knowledge is not needed for our purposes note that there is nothing to stop us keeping count of the recursions by passing integers along with any data structures being operated onfor examplefunction(int ntree /terminating condition and return /procedure details return function( -