树和森林的遍历

     设树T如下图所示,结点R是根,根的子树从左到右依次为T 1 ,T 2 ,…,T k 。

  

  1.树T的前序遍历定义:

  若树T非空,则:

  ①访问根结点R;

  ②依次前序遍历根R的各子树T 1 ,T 2 ,…,T k 。

  2.树的后序遍历定义:

  若树T非空,则:

  ①依次后序遍历根T的各子树T l ,T 2 ,…,T k ;

  ②访问根结点R。

  【例】对下面的(a)图中的树进行前序遍历和后序遍历,得到的前序序列和后序序列分别是ABCDE和BDCEA。

  

  注意:

  ① 前序遍历一棵树恰好等价于前序遍历该树对应的二叉树

  ② 后序遍历树恰好等价于中序遍历该树对应的二叉树。

  森林的两种遍历方法

  1.前序遍历森林

  若森林非空,则:

  ①访问森林中第一棵树的根结点;

  ②前序遍历第一棵树中根结点的各子树所构成的森林

  ③前序遍历除第一棵树外其它树构成的森林。

  2.后序遍历森林

  若森林非空,则:

  ①后序遍历森林中第一棵树的根结点的各子树所构成的森林;

  ②访问第一棵树的根结点;

  ③后序遍历除第一棵树外其它树构成的森林。

  注意:

  ① 前序遍历森林等同于前序遍历该森林对应的二叉树

  ② 后序遍历森林等同于中序遍历该森林对应的二叉树

  【例】对下面(a)图中所示的森林进行前序遍历和后序遍历,则得到该森林的前序序列和后序序列分别为ABCDEFICJH和

  BDCAIFJGHE。而(b)图所示二叉树的前序序列和中序序列也分别为ABCDEFIGJH和BDCAIFJGHE。

  

  ③ 当用二叉链表作树和森林的存储结构时,树和森林的前序遍历和后遍历,可用二叉树的前序遍历和中序遍历算法来实现。

           ( 文章来源:http://www.educity.cn/zk/sjjg/200801051035551484.htm)

                                                                                     

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章