二叉树
文章平均质量分 74
JauWang
这个作者很懒,什么都没留下…
展开
-
平衡二叉树
平衡二叉树(AVL树)定义或是空树或是每个结点深度之差不超过1的二叉排序树举例如下(结点的平衡因子=左子树深度-右子树深度):旋转(将二叉排序树调整为二叉平衡树)由于在二叉平衡树中插入或删除结点后,可能使平衡二叉树失去平衡,因此需要对其进行调整。假设结点a是失去平衡的最小子树的根结点1. 左单旋转(RR型)失衡原因:结点的右孩子的右子树插入结点所致调整策略:以结点的右孩子为轴,逆时针旋转,旋转以后,结点将作为其右孩子的左孩子,结点右孩子原来的左孩子作为结点的右孩子举例(B、原创 2021-05-27 15:23:17 · 176 阅读 · 0 评论 -
二叉排序树结点的查找、插入、删除
二叉排序树(查找、结点增加、删除)定义或是空树或具有下列性质:若左子树不为空,则左子树上所有结点的值均小于根结点的值若右子树不为空,则右子树上所有结点的值均大于根结点的值左右子树本身也是一棵二叉排序树举例:优点提高查找和插入删除关键字的速度结点查找算法分析若二叉排序树为空,查找失败若二叉排序树非空,比较查找关键字,若相等,查找成功,否则:A.若关键字小于根结点的关键字值,在根结点的左子树上继续查找,转向1B.若关键字大于根结点的关键字值,原创 2021-05-16 14:44:19 · 548 阅读 · 0 评论 -
二叉树的遍历算法(递归、层次、非递归)(c++)
二叉树的遍历算法(递归、层次、非递归)递归、层次遍历算法先序遍历若二叉树为空,遍历结束;否则,先根结点、再左子树、后右子树/*//二叉链表结点定义template <class T>class BiTreeNode{public: T data; //数据域 BiTreeNode<T>* lchild; //左孩子指针域 BiTreeNode<T>* rchild; //右孩子指针域};*/template<typename T&原创 2021-05-12 17:15:40 · 381 阅读 · 0 评论