RosettaCodeData/Task/Tree-traversal/Smalltalk/tree-traversal-5.st

13 lines
284 B
Smalltalk
Raw Permalink Normal View History

2023-07-01 11:58:00 -04:00
"Protocol: visiting"
LevelOrder>>visit: aNode
| queue |
queue := OrderedCollection with: aNode.
[(queue removeFirst accept: self with: queue) isEmpty] whileFalse
LevelOrder>>visit: aNode with: aQueue
block value: aNode.
^aQueue
add: aNode left;
add: aNode right;
yourself