最近看到参加比赛的同学日夜兼程地写代码、打比赛,虽没有亲身经历,但也感觉出了其中的紧张与激烈。 有一个同学,报名参加了比赛,作为女生,佩服她的这份坚持,同时还不得不佩服她的做题能力——对题目的理解及题型的熟练度。
继续看搜索问题,深度优先搜索可以通过递归及非递归来实现
运用递归实现:
Function Dfs (Int Step, 当前状态)
Begin
可加结束条件
从当前状态循环拓展下一个状态Next
If 状态Next合法 Then
Dfs (Step + 1, Next ))
End
非递归实现:
While Not Stack.Empty ()
Begin
Tmp = Stack.top()
从Tmp拓展下一个未拓展的状态Next
If 没有未拓展状态(到达叶节点) Then
Stack.pop()
Else If 状态Next合法 Then
Stack.push(Next)
End