AVL平衡二叉查找树
二叉排序树: 定义 二叉排序树,又叫二叉查找树,它或者是一棵空树;或者是具有以下性质的二叉树: 1. 若它的左子树不空,则左子树上所有节点的值均小于它的根节点的值; 2. 若它的右子树不空,则右子树上所有节点的值均大于它的根节点的值; 3. 它的左右子树也分别为二叉排序树。 比如下图就是一棵普通的二叉排序树: 如果按照中序遍历的顺序,一棵二叉排序树的输出结果就刚好是按照从小到大的顺序输出的,可以运用于二分算法。 先对其数据结构进行定义: typedef struct Binary_Tree_node { int data; //数据域 struct Binary_Tree_node* lchild, * rchild; //左右孩子结点 }Binode, * BiTree; 然后是插入操作: //假设没有相等的data,这里我们不考虑相等的数据 //插入结点 void Insert_Binary_Tree(BiTree& bst ,int t) //bst是根节点 { if (bst == NULL) //空树或者递归到了叶结点 { BiTree newp = new Binode; newp->data = t; newp->lchild = NULL; newp->rchild = NULL; bst = newp; } else { if (t > bst->data) /