[Tutor] printing tree structure

Alan Gauld alan.gauld at btinternet.com
Fri Jul 3 15:09:58 CEST 2009


"karma" <dorjetarap at googlemail.com> wrote

> thinking that a recursive solution would work here, but so far I can't
> quite get it working. This is what I have so far:
> 
> Can someone suggest whether this is suited to a recursive solution and

Yes certainly

> if so, what am I doing wrong.

>>>> L = ['a', 
                     ['b', 
                           ['d', [], [] ], 
                           ['e', [], [] ]
                      ], 
                     ['c', 
                           ['f', [], [] ], 
                           []
                      ]
                   ]

>>>> def printTree(L):
> for i in L:
>           if isinstance(i,str):
>                print 'Root: ', i
>           else:
>                 print '--Subtree: ', i
>                 printTree(i)
> 
 
>>>> printTree(L)
> Root:  a
> --Subtree:  ['b', ['d', [], []], ['e', [], []]]
> Root:  b
> --Subtree:  ['d', [], []]
> Root:  d
> --Subtree:  []
> --Subtree:  []

This is the end of the recursive call to printTree( ['d', [ [], [] ] ]

> --Subtree:  ['e', [], []] # this shouldn't be here

This is the next element in printTree( ['d', [], []], ['e', [], []] )

> Root:  e

This is the start of printTree( ['e', [], [] ]  )

> --Subtree:  []
> --Subtree:  []

Now why do you think the line you highlighted is an error?


-- 
Alan Gauld
Author of the Learn to Program web site
http://www.alan-g.me.uk/



More information about the Tutor mailing list