数据结构之---C语言实现平衡二叉树(AVL树)

//AVL(自动平衡二叉树)
#include 
#include 
typedef int ElemType;
//每个结点的平均值
typedef enum
{
     EH = 0,
     LH = 1,
     RH = -1 
}bh_t;

typedef enum
{
      FALSE = 0,
      TRUE = 1
}bool_t;

//定义平衡二叉树
typedef struct BSTNode
{
     ElemType key;                                //平衡值
     int bf;                             
     struct BSTNode *lchild,*rchild;                
}BSTNode, *BSTree;


//中序遍历
void InOrderTraverse(BSTree root)
{
     if(NULL != root)
     {
          InOrderTraverse(root->lchild);
          printf("%d\t",root->key);
          InOrderTraverse(root->rchild);
    }
}


//前序遍历
void PreOrderTraverse(BSTree root)
{
     if(NULL != root)
    {
          printf("%d\t",root->key);
          PreOrderTraverse(root->lchild);
          PreOrderTraverse(root->rchild);
     }
}


//单向右旋转
void R_Rotate(BSTree *p)
{
     BSTree lc=(*p)->lchild;
     (*p)->lchild=lc->rchild;
     lc->rchil

你可能感兴趣的:(C,&&,C++,数据结构,算法)