数据结构实验之查找二:平衡二叉树
来源:互联网 发布:淘宝卖家申诉入口 编辑:程序博客网 时间:2024/06/08 16:20
Problem Description
根据给定的输入序列建立一棵平衡二叉树,求出建立的平衡二叉树的树根。
Input
输入一组测试数据。数据的第1行给出一个正整数N(n <= 20),N表示输入序列的元素个数;第2行给出N个正整数,按数据给定顺序建立平衡二叉树。
Output
输出平衡二叉树的树根。
Example Input
588 70 61 96 120
Example Output
70
#include<stdio.h>#include<stdlib.h>#include<iostream>using namespace std;struct node{ int data, d; node *l,*r;};int Deep(node *head){ if(head==NULL) return -1; return head->d;}node *LL(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;}node *RR(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;}node *LR(node *head){ head->l=RR(head->l); return LL(head);}node *RL(node *head){ head->r=LL(head->r); return RR(head);}node *Creat(struct node *head,int x){ if(!head) { head=new node; head->l = 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,m; scanf("%d",&n); node *head=NULL; for(int i=0;i<n;i++) { scanf("%d",&m); head=Creat(head,m); } printf("%d\n",head->data); return 0;}
0 0
- 数据结构实验之查找二:平衡二叉树
- 数据结构实验之查找二:平衡二叉树
- 数据结构实验之查找二:平衡二叉树
- SDUT 数据结构实验之查找二:平衡二叉树
- 数据结构实验之查找二:平衡二叉树【OJ--3374】
- 数据结构实验之查找二:平衡二叉树
- 数据结构实验之查找二:平衡二叉树
- 数据结构实验之查找二:平衡二叉树
- 数据结构实验之查找二:平衡二叉树
- 数据结构实验之查找二:平衡二叉树
- SDUT 3374 数据结构实验之查找二:平衡二叉树
- SDUT3374数据结构实验之查找二:平衡二叉树
- 数据结构实验之查找二:平衡二叉树
- 数据结构实验之查找二:平衡二叉树
- 数据结构实验之查找二:平衡二叉树
- 数据结构实验之查找二:平衡二叉树
- 数据结构实验之查找二:平衡二叉树
- SDUTACM 数据结构实验之查找二:平衡二叉树
- lua脚本调用redis生成流水号
- leetcode(27).107. Binary Tree Level Order Traversal II
- IOS 仿微信聊天界面
- matlab之plot
- PHP中的类型转换规则
- 数据结构实验之查找二:平衡二叉树
- 尾差法和删除单链表
- 第十二周 项目1 -图基本算法库
- awk nginx日志分析接口响应时间
- win7 64位sql server 2008 r2安装
- MongoDB + Spark: 完整的大数据解决方案
- PHP数据类型之间的转换代码
- 判断两个字符串是否互为变形词
- matlab之取整函数