• Home
  • Blog
  • Prolog uses general trees, not binary trees. An example is a(b,c,d(e,f,g)) where root a has 3 kids, as does kid…

Prolog uses general trees, not binary trees. An example is a(b,c,d(e,f,g)) where root a has 3 kids, as does kid…

0 comments

Prolog uses general trees, not binary trees.   An example is 

         a(b,c,d(e,f,g))   where root a has 3 kids, as does kid d.

     It is possible to define both preorder and postorder for general trees, 
     although inorder of course makes no sense.

     For this assignment we are interested in postorder, which is defined as
     follows:

       to 'visit' a tree in postorder, 
          you visit the subtrees of the root, in left to right order,
          in postorder, and then you visit the root

     Thus the example above would yield the following postorder traversal:

            b c e f g d a

     
     Write Prolog code which will perform a postorder traversal of a Prolog
     tree constant.   Hint: you might use 'univ', or its cousins.

     Sample dialog:
     
     ?- postorder(a(b,c,d(e,f,g))).
     b c e f g d a    true

About the Author

Follow me


{"email":"Email address invalid","url":"Website address invalid","required":"Required field missing"}