Avl树的基本操作(c语言实现)

这段代码展示了如何使用C语言实现AVL树的基本操作,包括创建、查找、插入和删除节点。程序提供了一个交互式的菜单供用户选择操作,并通过先序遍历来展示结果。AVL树的平衡通过单旋和双旋操作来维护。
摘要由CSDN通过智能技术生成
#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.删除  
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值