软件开发设计AVL树源代码

#include <stdio.h>#include <stdlib.h> ttdefine N 15typedef int ElementType;typedef struct AvlNode (E

#include&lt;stdio.h&gt; #include&lt;stdlib.h&gt;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-&gt;left); MakeEmpty(T-&gt;right); free(T); ) returnNULL; O(logn)AVL *查找可以像普通二又查找树一样的进行,所以耗费时间,因为树总是保持平衡 的。 *不需要特殊的准备,树的结构不会由于杳找而改变。(这是与伸展树查找相对立的,它会因为 查找而变更树结构。) */ PositionFind(ElementTypex,AvlTreeT) ( if(T==NULL) ( printf("NOTFOUND!\n"); returnNULL; ) if(x&lt;T-&gt;data) returnFind(x,T-&gt;left); elseif(x&gt;T-&gt;data) returnFind(x,T-&gt;right);

腾讯文库软件开发设计AVL树源代码