adam fred ted nil nil nil mary nil eva nil nil fig data structure with nil pointers further consequence of the explicitness of pointers is that it is possible to define and manipulate cyclic data structures this additional flexibility yieldsof coursenot only increased power but also requires increased care by the programmerbecause the manipulation of cyclic data structures may easily lead to nonterminating processes this phenomenon of power and flexibility being intimately coupled with the danger of misuse is well known in programmingand it particularly recalls the goto statement indeedif the analogy between program structures and data structures is to be extendedthe purely recursive data structure could well be placed at the level corresponding with the procedurewhereas the introduction of pointers is comparable to the use of goto statements foras the goto statement allows the construction of any kind of program pattern (including loops)so do pointers allow for the composition of any kind of data structure (including ringsthe parallel development of corresponding program and data structures is shown in condensed form in table construction pattern program statement data type atomic element assignment scalar type enumeration compound statement record type repetition (known factorfor statement array type choice conditional statement type union (variant recordrepetition while or repeat statement sequence type recursion procedure statement recursive data type general graph go to statement structure linked by pointers table correspondences of program and data structures in chap we have seen that iteration is special case of recursionand that call of recursive procedure defined according to the following schemaprocedure pbegin if then end end where is statement not involving pis equivalent to and replaceable by the iterative statement while do end the analogies outlined in table reveal that similar relationship holds between recursive data types and the sequence in facta recursive type defined according to the schema type record