软件开发设计AVL树源代码
#include <stdio.h>#include <stdlib.h> ttdefine N 15typedef int ElementType;typedef struct AvlNode (E
#include<stdio.h> #include<stdlib.h>ttdefineN15 typedefintElementType; typedefstructAvlNode( 〃 AVL 树的节点 ElementTypedata; structAvlNode*left; //左孩子 structAvlNode*right;intHeight; }*Position,*AvlTree; //右孩子 AvITreeMakeEmpty(AvlTreeT); PositionFind(ElementTypex,AvITreeT); PositionFindMin(AvlTreeT); PositionFindMaxfAvlTreeT); AvITreelnsert(ElementTypex,AvITreeT); AvITreeDelete(ElementTypex,AvITreeT); ElementTypeRetrieve(PositionP); voidDisplay(AvlTreeT); AvITreeMakeEmpty(AvlTreeT){ if(T!=NULL) ( MakeEmpty(T->left); MakeEmpty(T->right); free(T); ) returnNULL; O(logn)AVL *查找可以像普通二又查找树一样的进行,所以耗费时间,因为树总是保持平衡 的。 *不需要特殊的准备,树的结构不会由于杳找而改变。(这是与伸展树查找相对立的,它会因为 查找而变更树结构。) */ PositionFind(ElementTypex,AvlTreeT) ( if(T==NULL) ( printf("NOTFOUND!\n"); returnNULL; ) if(x<T->data) returnFind(x,T->left); elseif(x>T->data) returnFind(x,T->right);

