数据结构实验之查找二:平衡二叉树
来源:互联网 发布:海战网络手游哪个好玩 编辑:程序博客网 时间:2024/06/08 16:04
数据结构实验之查找二:平衡二叉树
Time Limit: 400MS Memory limit: 65536K
题目描述
根据给定的输入序列建立一棵平衡二叉树,求出建立的平衡二叉树的树根。
输入
输入一组测试数据。数据的第1行给出一个正整数N(n <= 20),N表示输入序列的元素个数;第2行给出N个正整数,按数据给定顺序建立平衡二叉树。
输出
输出平衡二叉树的树根。
示例输入
588 70 61 96 120
示例输出
70
提示
来源
xam 7
#include<bits/stdc++.h>using namespace std;typedef struct node{ int data; int d; struct node *lchild; struct node *rchild;} node,*Tree;int deep(Tree &t){ if(!t) { return -1; } else { return t->d; }}Tree LL(Tree &t)//左单旋转{ Tree Q; Q=t->lchild; t->lchild=Q->rchild; Q->rchild=t; Q->d=max(deep(Q->lchild),deep(Q->rchild))+1; t->d=max(deep(t->lchild),deep(t->rchild))+1; return Q;}Tree RR(Tree &t)//右单旋转{ Tree Q; Q=t->rchild;; t->rchild=Q->lchild; Q->lchild=t; Q->d=max(deep(Q->lchild),deep(Q->rchild))+1; t->d=max(deep(t->lchild),deep(t->rchild))+1; return Q;}Tree LR(Tree &t){ t->lchild=RR(t->lchild); return LL(t);}Tree RL(Tree &t){ t->rchild=LL(t->rchild); return RR(t);}Tree Insert(Tree &t,int x){ if(!t) { t=new(node); t->lchild=NULL; t->rchild=NULL; t->d=0; t->data=x; } else if(x<t->data) { t->lchild=Insert(t->lchild,x); if(deep(t->lchild)-deep(t->rchild)>1) { if(x<t->lchild->data) { t=LL(t); } else { t=LR(t); } } } else if(x>t->data) { t->rchild=Insert(t->rchild,x); if(deep(t->rchild)-deep(t->lchild)>1) { if(x>t->data) { t=RR(t); } else { t=RL(t); } } } t->d=max(deep(t->lchild),deep(t->rchild))+1; return t;}int main(){ Tree t; int n,num; cin>>n; t=NULL; for(int i=0; i<n; i++) { cin>>num; Insert(t,num); } cout<<t->data<<endl;}
0 0
- 数据结构实验之查找二:平衡二叉树
- 数据结构实验之查找二:平衡二叉树
- 数据结构实验之查找二:平衡二叉树
- SDUT 数据结构实验之查找二:平衡二叉树
- 数据结构实验之查找二:平衡二叉树【OJ--3374】
- 数据结构实验之查找二:平衡二叉树
- 数据结构实验之查找二:平衡二叉树
- 数据结构实验之查找二:平衡二叉树
- 数据结构实验之查找二:平衡二叉树
- 数据结构实验之查找二:平衡二叉树
- SDUT 3374 数据结构实验之查找二:平衡二叉树
- SDUT3374数据结构实验之查找二:平衡二叉树
- 数据结构实验之查找二:平衡二叉树
- 数据结构实验之查找二:平衡二叉树
- 数据结构实验之查找二:平衡二叉树
- 数据结构实验之查找二:平衡二叉树
- 数据结构实验之查找二:平衡二叉树
- SDUTACM 数据结构实验之查找二:平衡二叉树
- JAVA一些基础概念
- [AC自动机 矩阵快速幂 期望] BZOJ 2553 [BeiJing2011]禁忌
- Java多线程系列--“JUC锁”05之 非公平锁 (r)
- python内置函数大全
- 使用retrofit框架的网络请求方法使用例子,同时+MVP +rxjava + rxandroid使用
- 数据结构实验之查找二:平衡二叉树
- Java多线程系列--“JUC锁”06之 Condition条件 (r)
- 292. Nim Game
- 如何防止重复发送 Ajax 请求?
- poj1840
- CodeForces 653A Bear and Three Balls 【sort+去重(unique)】
- 【挖坑记】JZOJ 4727 挺进
- 【javascript】prototype继承
- Java多线程系列--“JUC锁”07之 LockSupport (r)