摘要: http://acm.hdu.edu.cn/showproblem.php?pid=1710题意:依次给出二叉树的前序历遍和中序历遍,要你输出它的后序历遍。感叹:这个题目,我不得不感慨用递归解决二叉树的问题真心碉堡了。也不得不感叹,自己还是太水了,记得以前我的一个学长做这个题目,没超过十分钟后就ac了。思路:用递归做的宏观思路很简单,就是结合前序历遍和中序历遍,找根节点,在中序历遍中,根节点左边的全部是左子树,右边的全部是右子树,那么将这些结点慢慢划分为一个个子问题。左子树的第一个结点又可以看作一个新的根节点,它有它的左子树和右子树,同理,慢慢划分,递归的思路也就出来了。假如中序历遍中第i个点 阅读全文
posted @ 2013-01-13 15:17 紫忆 阅读(2554) 评论(0) 推荐(1) 编辑
摘要: 思路:用优先队列模拟最小化堆的操作,然后用建二叉树的方法将结点连接好。#include<iostream>#include<algorithm>#include<queue>using namespace std;typedef struct tree{ tree *l,*r; int w; char ch;}tree;struct ss //优先队列,模拟最小化堆,它其中变量的类型为struct tree *型{ friend bool operator<(const ss &a,const ss &b) ... 阅读全文
posted @ 2013-01-13 12:00 紫忆 阅读(295) 评论(0) 推荐(0) 编辑