第11讲树---2.pptVIP

  • 2
  • 0
  • 约5.48千字
  • 约 35页
  • 2015-08-16 发布于广东
  • 举报
* * Essential of Lecture Eleven : 一、二叉树的非递归遍历 二、遍历的应用 难点 一、二叉树的非递归遍历 遍历:按某种搜索路径访问二叉树的每个结点,而且每个结点仅被访问一次。 二叉树的遍历可分解为: T: 访问根 L:遍历左子树 R: 遍历右子树 约定先左后右: T L R:先序遍历 L T R:中序遍历 L R T:后序遍历 A E D C B F G 遍历的非递归算法:? 递归算法逻辑清晰、易懂,但在实现时,由于函数调用栈层层叠加,效率不高,故有时考虑非递归算法。 一、二叉树的非递归遍历 TLR: 对每个结点,在访问完后,沿其左链一直访问下来,直到左链为空,这时,所有已被访问过的结点进栈。然后结点出栈,对于每个出栈结点,即表示该结点和其左子树已被访问结束,应该访问该结点的右子树。 一、二叉树的非递归遍历 TLR: (1)当前指针指向根结点。 (2)访问当前结点,当前指针指向其左孩子并进栈,重复2,直到左孩子为NULL。 (3)依次退栈,将当前指针指向右孩子。 (4)若栈非空或当前指针非NULL,执行2;否则结束。 先序遍历的非递归算法: void NonRecurPreOrderHelp(BinTreeNodeElemT

文档评论(0)

1亿VIP精品文档

相关文档