正文

已知二叉树的前,中遍历结果,求后序遍历结果2005-09-16 13:13:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/boxer/4813.html

分享到:

// pre -- 先序
// in  -- 中序
void Post(List *pre, List *in)
{
  Element  e;
  POSITION pos;
  List     *lin, *rin;    
  List     *lpre,*rpre;
  e = GetFront(pre);  // 取得先序表中的第一个元素(必定为二叉树的根节点)
  pos = FindElement(in, e); // 根节点必定把中序分成左右两部分,
                            //左半部为左子树序列,右半部为右子树序列
  lin = GetLeft(in, pos);     // 以pos为界取得中序的左半部分
  rin = GetRight(in, pos);    // 取得右半部分
  lpre = FindLeft(pre, lin);  // 从先序中找到左子树部分
  rpre = FindRight(pre,rin); // 从先序中找到右子树部分
  Post(lpre, lin);            // 访问左子树
  Post(rpre, rin);            // 访问右子树
  Vist(e);                    // 访问根
}

阅读(3564) | 评论(0)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

暂无评论
您需要登录后才能评论,请 登录 或者 注册