摘要: 题目描述 "链接" 给一个树的层序遍历,判断它是不是堆,是大顶堆还是小顶堆。输出这个树的后序遍历 分析 堆实际是一棵完全二叉树,大顶堆满足,根节点大于左右子树的所有结点 堆有数组存储,遍历堆的方法:遍历所有有孩子的结点,一共有$0$到$(n 1)/2$个。具体见代码!!注意不要越界!! c++ in 阅读全文
posted @ 2019-08-02 20:30 Doragd 阅读(163) 评论(0) 推荐(0) 编辑
摘要: 题目描述 "链接" 给出一棵树的结点个数n,以及它的前序遍历和后序遍历,输出它的中序遍历,如果中序遍历不唯一就输出No,且输出其中一个中序即可,如果中序遍历唯一就输出Yes,并输出它的中序 分析 分析题目所给的正反样例,可以发现,最后递归到单一子树后,左根是它,右根也是它,就不唯一了。此时,可以随便 阅读全文
posted @ 2019-08-02 19:25 Doragd 阅读(205) 评论(0) 推荐(0) 编辑
摘要: 题目描述 "链接" 输出一个二叉搜索树的最后两层结点个数a和b,以及他们的和 分析 用链表存储,建立,注意一定记住insert &加引用,以及root=NULL时新建结点的几个操作 dfs求cnt[layer] c++ include using namespace std; struct node 阅读全文
posted @ 2019-08-02 15:59 Doragd 阅读(110) 评论(0) 推荐(0) 编辑
摘要: ```c++ #include using namespace std; const int maxn = 20; struct node{ int l,r; }nodes[maxn]; int n, have[maxn], rt; string l,r; int maxid = -1, ans; void dfs(int root, int idx){ if(root == ... 阅读全文
posted @ 2019-08-02 15:30 Doragd 阅读(156) 评论(0) 推荐(0) 编辑
摘要: 题目描述 "链接" 反转一棵二叉树,给出原二叉树的每个结点的左右孩子,输出它的层序和中序遍历 分析 反转二叉树就是存储时交换左右结点,也可以遍历时交换遍历次序 如何找root,别人用的have[i]=1标记,我用的二重循环 处理输入输出,用string+stoi更简单,我用的char 和自己写的st 阅读全文
posted @ 2019-08-02 15:00 Doragd 阅读(209) 评论(0) 推荐(0) 编辑