Brains


Algorithm、Machine Learning、Search、cloud computing
on Algorithm, AVL

平衡二叉树

本文简要的实现了平衡二叉树的插入、删除操作。为了更新节点的平衡度,新增了parent指针。 简介 这个平衡二叉树使用C语言实现的,因为写的匆忙,加上智商捉急,可能某些地方没有考虑周全,会有一点小bug,尚在排查中。本算法能基本的实现平衡二叉树的插入、删除操作,有关平衡二叉树的原理及实现,参考AVL树(一)之 图文解析 和 C语言的实现。这位博主讲解的非常详细!!虽然他给的代码中有一些错误,但从他的博文中,我受益良多,并且重写了这个AVL树,在此表示感谢 ^_^ . 数据结构 这里的parent指针很重要,它可以在平衡二叉树删除算法的调整过程中,起着很大的作用。有一点需要注明的是,那位博主的删除算法有误,选用的数据结构也不太合理。。 typedef int DataType; typedef struct Node { DataType value; int depth; // 保存节点在树中的深度,没有孩子,深度为1,负责深度为左右孩子最大深度值加1 struct Node * left;
Read More