随笔分类 - 数据结构
摘要:AVL树 AVL树是平衡二叉树,它可以尽可能创建“枝繁叶茂”的树,防止树枝过长过少。二叉树搜索中,会引入ASL平均查找长度的概念,表示查找所有节点的比较次数平均值。平衡二叉树的ASL相较而言较小。 思路 AVL树就是比较各个节点左右子树的深度差,当差值等于2时就需要对树结构进行改变。改变的方式有左旋
阅读全文
摘要:二叉树节点删除操作可以分为三种情况: 叶子节点 有左或右孩子节点 既有左孩子又有右孩子 思路: 只为叶子节点,可直接删掉,使用delete()函数(C语言中是free)释放节点;有单个孩子节点,则让孩子节点接替要删除的节点;同时有左右孩子节点,则查找右子树中最小值,将其值付给要删除的节点,然后删除右
阅读全文
摘要:关于树的操作,大部分都是使用递归的思想。只有层序构建二叉树时需要注意一下,它通过使用队列的方式记录每一个节点,当一个节点有孩子节点时,就将孩子节点添加到队列中。当队列为空时,则说明二叉树建立完毕。具体操作都在代码中。 #include <iostream> #include <queue> usin
阅读全文

浙公网安备 33010602011771号