可作此图:

可见,此时m是n的祖先。
下面进行分析(圆球为输出)。
- 若使用先序遍历,即“根左右”,此时动作是:

在n入栈前m已经出栈,无法确定路径。
- 若使用中序遍历,即“左根右”,此时动作是:

在n入栈前m已经出栈,无法确定路径。
- 若使用中序遍历,即“左根右”,此时动作是:

在n入栈后,m仍在栈中,且此时栈中有m、b、n,可见路径为m-b-n,路径找到。

可见,此时m是n的祖先。
下面进行分析(圆球为输出)。

在n入栈前m已经出栈,无法确定路径。

在n入栈前m已经出栈,无法确定路径。

在n入栈后,m仍在栈中,且此时栈中有m、b、n,可见路径为m-b-n,路径找到。
本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。