3374 数据结构实验之查找二:平衡二叉树
来源:互联网 发布:淘宝客服业绩怎么算 编辑:程序博客网 时间:2024/06/15 18:18
3374 数据结构实验之查找二:平衡二叉树
Time Limit: 400MS Memory Limit: 65536KB
Problem Description
根据给定的输入序列建立一棵平衡二叉树,求出建立的平衡二叉树的树根。
Input
输入一组测试数据。数据的第1行给出一个正整数N(n <= 20),N表示输入序列的元素个数;第2行给出N个正整数,按数据给定顺序建立平衡二叉树。
Output
输出平衡二叉树的树根。
Example Input
588 70 61 96 120
Example Output
70
#include <bits/stdc++.h>using namespace std;typedef struct node{ int data,length; struct node *l,*r;}*tree;int n,m,flag;int length(tree root){ if(root==NULL) return -1; else return root->length;}tree RR(tree root){ struct node *temp = root->r; root->r = temp->l; temp->l = root; temp->length = max(length(temp->l),length(temp->r))+1; root->length = max(length(root->l),length(root->r))+1; return temp;}tree LL(tree root){ node *temp = root->l; root->l = temp->r; temp->r = root; temp->length = max(length(temp->l),length(temp->r))+1; root->length = max(length(root->l),length(root->r))+1; return temp;}tree RL(tree root){ root->r = LL(root->r); return RR(root);}tree LR(tree root){ root->l = RR(root->l); return LL(root);}tree creat(int x,tree root){ if(root==NULL) { root = new node; root->data = x; root->length =0; root->l = root->r = NULL; } else if(x>root->data) { root->r = creat(x,root->r); if(length(root->r)-length(root->l)>1) { if(root->r->data<x) root = RR(root); else root = RL(root); } } else if(x<root->data) { root->l = creat(x,root->l); if(length(root->l)-length(root->r)>1) { if(root->l->data<x) root = LR(root); else root = LL(root); } } root->length = max(length(root->l),length(root->r))+1; return root;}int main(){ int x; cin>>n; struct node *root = NULL; for(int i =0; i<n; i++) { cin >> x; root = creat(x,root); } cout << root->data <<endl;; return 0;}
阅读全文
0 0
- 数据结构实验之查找二:平衡二叉树【OJ--3374】
- SDUT 3374 数据结构实验之查找二:平衡二叉树
- 3374 数据结构实验之查找二:平衡二叉树
- 3374-数据结构实验之查找二:平衡二叉树
- 3374 数据结构实验之查找二:平衡二叉树
- SDUT 3374 数据结构实验之查找二:平衡二叉树
- 数据结构实验之查找二:平衡二叉树
- 数据结构实验之查找二:平衡二叉树
- 数据结构实验之查找二:平衡二叉树
- SDUT 数据结构实验之查找二:平衡二叉树
- 数据结构实验之查找二:平衡二叉树
- 数据结构实验之查找二:平衡二叉树
- 数据结构实验之查找二:平衡二叉树
- 数据结构实验之查找二:平衡二叉树
- 数据结构实验之查找二:平衡二叉树
- SDUT3374数据结构实验之查找二:平衡二叉树
- 数据结构实验之查找二:平衡二叉树
- 数据结构实验之查找二:平衡二叉树
- ACE入门---很好的文章
- SSH登录一条线理解前因后果
- 制作php+nginx环境镜像
- 飞思卡尔 mc9s12xs128 常用外设源码
- 用java实现一个简易自动提款机
- 3374 数据结构实验之查找二:平衡二叉树
- 跟我动手搭框架二之AOP实现
- RxJava操作符-变换操作符
- CSDN-markdown编辑器使用
- 判断一个数为回文数的最简单实现
- PTA-修理牧场(25分)
- 线性代数 02.01 矩阵
- 跟我动手搭框架三之Web容器实现
- 组合属性动画+商品详情+MVP+购物车