tree traversal, array/string scan, recurse