#include<stdio.h>
#include<stdlib.h>
typedef struct AvlNode *Position;
typedef struct AvlNode *AvlTree;
typedef int ElementType;
struct AvlNode{
ElementType Element;
AvlTree Left;
AvlTree Right;
int Height;
}AvlNode;
//Avl函数的声明
AvlTree CreateTree(); //创建Avl树
Position Find(ElementType Element, AvlTree T); //查找
Position FindMax(AvlTree T);
Position FindMin(AvlTree T);
AvlTree Insert(ElementType Element, AvlTree T); //插入
AvlTree Delete(ElementType Element, AvlTree T); //删除
//插入结点到AVL树所需的函数声明
int Height(AvlTree T); //返回树的高
int Max(ElementType A, ElementType B); //比较树高
Position SingleRotateWithLeft(Position K2); //左单旋
Position SingleRotateWithRight(Position K2); //右单旋
Position DoubleRotateWithLeft(Position K3); //左右双旋
Position DoubleRotateWithRight(Position K3); //右左双旋
void PreOrder_1(AvlTree T); //先序遍历(递归)
int main()
{
AvlTree T;
ElementType Element;
int flag = 1, i;
printf(" 本程序实现Avl树的基本操作。 \n");
printf("| |\n");
printf("|**********************************************************************|\n");
printf("| Avl树的基本操作如下: |\n");
printf("| 0.创建Avl树 |\n");
printf("| 1.查找 |\n");
printf("| 2.插入 |\n");
printf("| 3.删除
Avl树的基本操作(c语言实现)
最新推荐文章于 2024-08-16 11:43:21 发布
这段代码展示了如何使用C语言实现AVL树的基本操作,包括创建、查找、插入和删除节点。程序提供了一个交互式的菜单供用户选择操作,并通过先序遍历来展示结果。AVL树的平衡通过单旋和双旋操作来维护。
摘要由CSDN通过智能技术生成