数据结构实验之查找二:平衡二叉树
来源:互联网 发布:pes贝克汉姆捏脸数据 编辑:程序博客网 时间:2024/05/19 19:44
数据结构实验之查找二:平衡二叉树
Time Limit: 400ms Memory limit: 65536K 有疑问?点这里^_^
题目描述
根据给定的输入序列建立一棵平衡二叉树,求出建立的平衡二叉树的树根。
输入
输入一组测试数据。数据的第1行给出一个正整数N(n <= 20),N表示输入序列的元素个数;第2行给出N个正整数,按数据给定顺序建立平衡二叉树。
输出
输出平衡二叉树的树根。
示例输入
588 70 61 96 120
示例输出
70
#include<bits/stdc++.h>using namespace std;struct node{ int data; int d; struct node *l,*r;};int Deep(struct node *head){ if(head) return head->d; return -1;}struct node *LL(struct node *head){ struct node *q=head->l; head->l=q->r; q->r=head; q->d=max(Deep(q->l),Deep(q->r))+1; head->d=max(Deep(head->l),Deep(head->r))+1; return q;}struct node *RR(struct node *head){ struct node *q=head->r; head->r=q->l; q->l=head; q->d=max(Deep(q->l),Deep(q->r))+1; head->d=max(Deep(head->l),Deep(head->r))+1; return q;}struct node *RL(struct node *head){ head->l=RR(head->l); return LL(head);}struct node *LR(struct node *head){ head->r=LL(head->r); return RR(head);}struct node *Creat(struct node *head,int x){ if(!head) { head=(struct node *)malloc(sizeof(struct node)); head->l=NULL; head->r=NULL; head->data=x; head->d=0; } else if(x<head->data) { head->l=Creat(head->l,x); if(Deep(head->l)-Deep(head->r)>1) { if(x<head->l->data) head=LL(head); else head=LR(head); } } else if(x>head->data) { head->r=Creat(head->r,x); if(Deep(head->r)-Deep(head->l)>1) { if(x>head->r->data) head=RR(head); else head=RL(head); } } head->d=max(Deep(head->l),Deep(head->r))+1; return head;}int main(){ int n,x; scanf("%d",&n); struct node *head=NULL; while(n--) { scanf("%d",&x); head=Creat(head,x); } printf("%d\n",head->data); return 0;}
0 0
- 数据结构实验之查找二:平衡二叉树
- 数据结构实验之查找二:平衡二叉树
- 数据结构实验之查找二:平衡二叉树
- SDUT 数据结构实验之查找二:平衡二叉树
- 数据结构实验之查找二:平衡二叉树【OJ--3374】
- 数据结构实验之查找二:平衡二叉树
- 数据结构实验之查找二:平衡二叉树
- 数据结构实验之查找二:平衡二叉树
- 数据结构实验之查找二:平衡二叉树
- 数据结构实验之查找二:平衡二叉树
- SDUT 3374 数据结构实验之查找二:平衡二叉树
- SDUT3374数据结构实验之查找二:平衡二叉树
- 数据结构实验之查找二:平衡二叉树
- 数据结构实验之查找二:平衡二叉树
- 数据结构实验之查找二:平衡二叉树
- 数据结构实验之查找二:平衡二叉树
- 数据结构实验之查找二:平衡二叉树
- SDUTACM 数据结构实验之查找二:平衡二叉树
- 第12周阅读程序(3)
- validation验证
- exe open with param(palying)
- JAVA学习笔记三之(2)语句①
- 2016.5.21【初中部 NOIP提高组 】模拟赛A 总结
- 数据结构实验之查找二:平衡二叉树
- 第十三周项目55-动物这样叫
- 95. Unique Binary Search Trees II
- 最小代价子母树 动态规划+四边形不等式优化
- 【SHELL】监控Nginx运行,Mysql主从运行,主从复制延迟
- csu 1335 高桥和低桥
- 4种方法,都是四舍五入
- 自定义广播使用学习
- Linux - ps指令詳解