我正在寻找一种针对非二叉树的非递归深度优先搜索算法。很感谢任何形式的帮助。
DFS:
list nodes_to_visit = {root}; while( nodes_to_visit isn't empty ) { currentnode = nodes_to_visit.take_first(); nodes_to_visit.prepend( currentnode.children ); //do something }
BFS:
list nodes_to_visit = {root}; while( nodes_to_visit isn't empty ) { currentnode = nodes_to_visit.take_first(); nodes_to_visit.append( currentnode.children ); //do something }
两者的对称性很酷。
更新: 如前所述,take_first()删除并返回列表中的第一个元素。
take_first()