题目描述
将给定的一系列数字插入初始为空的AVL树,请你输出最后生成的AVL树的根结点的值。
输入格式:
输入的第一行给出一个正整数N(≤20),随后一行给出N个不同的整数,其间以空格分隔。
输出格式:
在一行中输出顺序插入上述整数到一棵初始为空的AVL树后,该树的根结点的值。
输入样例1:
5
88 70 61 96 120
输出样例1:
70
输入样例2:
7
88 70 61 96 120 90 65
输出样例2:
88
思路分析
在建树的时候就直接建成二叉搜索树,每次加一个节点后从加入的节点到根节点进行平衡判断,找到被破坏平衡的节点,判断是左单旋,右单旋,左右旋还是右左旋。




源代码
#include <stdio.h>
#include<stdlib.h>
typedef struct node *AVLTree;
struct node{
int Data;
AVLTree Left;
AVLTree Right;
};
int High(AVLTree T){
if(!T)
return 0;
int left=High(T->Left)

本文探讨了如何将一系列整数插入AVL树并保持其平衡,重点介绍了在构建过程中进行旋转操作的算法实现,最终输出生成AVL树的根节点值。
最低0.47元/天 解锁文章
667

被折叠的 条评论
为什么被折叠?



