![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
二叉树
锐萌瑞
这个作者很懒,什么都没留下…
展开
-
前序,中序,后序递归遍历二叉树
测试例子:输入ab#d##c#e## 输出:abdce bdace dbeca #include<stdio.h> #include<stdlib.h> #include<iostream> #include<stack> using namespace std; struct Node...原创 2017-03-08 16:37:16 · 269 阅读 · 0 评论 -
小猴子下落
1269: 小猴子下落 时间限制: 1 Sec 内存限制: 128 MB 提交: 35 解决: 25 [提交][状态][讨论版] 题目描述 有一颗二叉树,最大深度为D,且所有叶子的深度都相同。所有结点从左到右从上到下的编号为1,2,3,·····,2的D次方减1。在结点1处放一个小猴子,它会往下跑。每个内结点上都有一个开关,初始全部关闭,当每次有小猴子跑到一个开关上时,它的状原创 2017-03-23 23:04:31 · 491 阅读 · 0 评论 -
建立二叉树,并层次遍历输出
测试数据输入:123##4##5## 输出数据:12345 #include #include #include using namespace std; struct Node{ Node *rchild; Node *lchild; char data; }; deque Q; Node *create(Node *bt) //前序建立二叉树 {原创 2017-03-08 20:46:31 · 1317 阅读 · 0 评论 -
题目1009:二叉搜索树
题目1009:二叉搜索树 时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:9363 解决:4116 题目描述: 判断两序列是否为同一二叉搜索树序列 输入: 开始一个数n,(1 接下去一行是一个序列,序列长度小于10,包含(0~9)的数字,没有重复数字,根据这个序列可以构造出一颗二叉搜索树。 接下去的n行有n个序列,每个原创 2017-03-22 20:38:32 · 354 阅读 · 0 评论 -
题目1467:二叉排序树
题目描述: 二叉排序树,也称为二叉查找树。可以是一颗空树,也可以是一颗具有如下特性的非空二叉树: 1. 若左子树非空,则左子树上所有节点关键字值均不大于根节点的关键字值; 2. 若右子树非空,则右子树上所有节点关键字值均不小于根节点的关键字值; 3. 左、右子树本身也是一颗二叉排序树。 现在给你N个关原创 2017-03-20 17:02:45 · 352 阅读 · 0 评论 -
建立二叉排序树,并前后序输出
测试例子:5 1 6 5 9 8输出例子:1 6 5 9 8 5 8 9 6 1#include #include using namespace std; struct Node { Node *rchild; Node *lchild; int data ; }; void preOrder(Node *bt){ printf("%d",bt->d原创 2017-03-09 12:27:46 · 1061 阅读 · 0 评论 -
前序和中序确定二叉树,并以后序输出
输入两个字符串,第一行为前序遍历,第二行为中序遍历 输出一行由后序遍历的字符串 样例输入:ABC BAC FDXEAG XDEFAG 样例输出;BCA XEDGAF #include #include #includ原创 2017-03-05 15:38:40 · 645 阅读 · 0 评论 -
由中序和后序建立二叉树,并前序输出
输入用例: BAC BCA XDEFAG XEDGAF 输出用例: ABC FDXEAG 思路与前面那道由前序中序输出后序思路一样,前面有详细的解答 /// /// @file test.cc /// @author miaobeihai(452686191@qq.com) /// @date 2017-03-05 16:31:36 /// #includ原创 2017-03-05 17:38:30 · 287 阅读 · 0 评论 -
中序和层次建二叉树,并前序输出(代码未测试完成,敬请期待)
#include #include #include using namespace std; struct Node{ Node *rchild; Node *lchild; char data; }; void preorder(Node *bt) { if(bt){ coutdata<<" "; if(bt->lchild!=N原创 2017-03-08 22:34:59 · 190 阅读 · 0 评论 -
建立二叉树,按层次遍历分层次换行输出
测试输入:123##4##5## 输出:1 2 5 3 4 #include #include using namespace std; struct Node{ Node *rchild; Node *lchild; char data; }; vector edge; Node *create(Node *bt)原创 2017-03-08 21:14:42 · 1644 阅读 · 0 评论 -
哈弗曼树
#include #include//如果在VS环境下,必须加上这一个头文件,因为greater模板在里边 #include using namespace std; priority_queue ,greater > Q;//建立一个大顶堆 int main() { int n,x; scanf("%d",&n); while(Q.empty()==false) for(int i=0;原创 2017-03-05 09:48:43 · 216 阅读 · 0 评论 -
求二叉树的节点数
考虑两种情况:一种为空,一种不为空。 二叉树节点结构定义: typedef struct node { int data; struct node *lchild; struct node *lchild; }Tree; 递归: int getnodenum(Tree *bt) { if(bt==NULL) return 0; else return getnodenum原创 2017-03-04 10:22:27 · 385 阅读 · 0 评论 -
二叉树的高度
依然先定义数据结构: typedef struct node { int data; struct node *lchild; struct node *rchild; }Tree;求其高度,使用递归栈形式: int height(Tree *bt) { int hl,hr,depth; if(bt==NULL) return 0; else { hl=height(b原创 2017-03-04 10:37:24 · 301 阅读 · 0 评论 -
动态规划(4)滑雪问题
Michael喜欢滑雪百这并不奇怪, 因为滑雪的确很刺激。可是为了获得速度,滑的区域必须向下倾斜,而且当你滑到坡底,你不得不再次走上坡或者等待升降机来载你。Michael想知道载一个区域中最长底滑坡。区域由一个二维数组给出。数组的每个数字代表点的高度。下面是一个例子 1 2 3 4 5 16 17 18 19 6 15 24 25 20 7 14 23原创 2017-03-04 17:15:13 · 2349 阅读 · 0 评论