
二叉树
锐萌瑞
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
前序,中序,后序递归遍历二叉树
测试例子:输入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 · 308 阅读 · 0 评论 -
小猴子下落
1269: 小猴子下落时间限制: 1 Sec 内存限制: 128 MB提交: 35 解决: 25[提交][状态][讨论版]题目描述有一颗二叉树,最大深度为D,且所有叶子的深度都相同。所有结点从左到右从上到下的编号为1,2,3,·····,2的D次方减1。在结点1处放一个小猴子,它会往下跑。每个内结点上都有一个开关,初始全部关闭,当每次有小猴子跑到一个开关上时,它的状原创 2017-03-23 23:04:31 · 529 阅读 · 0 评论 -
建立二叉树,并层次遍历输出
测试数据输入:123##4##5## 输出数据:12345#include#include#includeusing namespace std;struct Node{ Node *rchild; Node *lchild; char data;};deque Q;Node *create(Node *bt) //前序建立二叉树{原创 2017-03-08 20:46:31 · 1385 阅读 · 0 评论 -
题目1009:二叉搜索树
题目1009:二叉搜索树时间限制:1 秒内存限制:32 兆特殊判题:否提交:9363解决:4116题目描述:判断两序列是否为同一二叉搜索树序列输入:开始一个数n,(1接下去一行是一个序列,序列长度小于10,包含(0~9)的数字,没有重复数字,根据这个序列可以构造出一颗二叉搜索树。接下去的n行有n个序列,每个原创 2017-03-22 20:38:32 · 394 阅读 · 0 评论 -
题目1467:二叉排序树
题目描述: 二叉排序树,也称为二叉查找树。可以是一颗空树,也可以是一颗具有如下特性的非空二叉树: 1. 若左子树非空,则左子树上所有节点关键字值均不大于根节点的关键字值; 2. 若右子树非空,则右子树上所有节点关键字值均不小于根节点的关键字值; 3. 左、右子树本身也是一颗二叉排序树。 现在给你N个关原创 2017-03-20 17:02:45 · 417 阅读 · 0 评论 -
建立二叉排序树,并前后序输出
测试例子:5 1 6 5 9 8输出例子:1 6 5 9 8 5 8 9 6 1#include#includeusing namespace std;struct Node { Node *rchild; Node *lchild; int data ;};void preOrder(Node *bt){ printf("%d",bt->d原创 2017-03-09 12:27:46 · 1124 阅读 · 0 评论 -
前序和中序确定二叉树,并以后序输出
输入两个字符串,第一行为前序遍历,第二行为中序遍历输出一行由后序遍历的字符串样例输入:ABC BAC FDXEAG XDEFAG样例输出;BCA XEDGAF#include#include#includ原创 2017-03-05 15:38:40 · 693 阅读 · 0 评论 -
由中序和后序建立二叉树,并前序输出
输入用例:BACBCAXDEFAGXEDGAF输出用例:ABCFDXEAG思路与前面那道由前序中序输出后序思路一样,前面有详细的解答 /// /// @file test.cc /// @author miaobeihai(452686191@qq.com) /// @date 2017-03-05 16:31:36 ///#includ原创 2017-03-05 17:38:30 · 332 阅读 · 0 评论 -
中序和层次建二叉树,并前序输出(代码未测试完成,敬请期待)
#include#include#includeusing 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 · 225 阅读 · 0 评论 -
建立二叉树,按层次遍历分层次换行输出
测试输入:123##4##5##输出:1 2 5 3 4#include#includeusing namespace std;struct Node{ Node *rchild; Node *lchild; char data;};vector edge;Node *create(Node *bt)原创 2017-03-08 21:14:42 · 1708 阅读 · 0 评论 -
哈弗曼树
#include#include//如果在VS环境下,必须加上这一个头文件,因为greater模板在里边#includeusing 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 · 249 阅读 · 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 · 430 阅读 · 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 · 343 阅读 · 0 评论 -
动态规划(4)滑雪问题
Michael喜欢滑雪百这并不奇怪, 因为滑雪的确很刺激。可是为了获得速度,滑的区域必须向下倾斜,而且当你滑到坡底,你不得不再次走上坡或者等待升降机来载你。Michael想知道载一个区域中最长底滑坡。区域由一个二维数组给出。数组的每个数字代表点的高度。下面是一个例子 1 2 3 4 516 17 18 19 615 24 25 20 714 23原创 2017-03-04 17:15:13 · 2420 阅读 · 0 评论