摘要: 堆是一种特殊的完全二叉树,我们在构造二叉查找树的时候,保持左子树<根节点<右子树,而最大堆和最小堆则是要求根节点大于或小于所有子节点。 由于堆是一种完全二叉树,所以可以用线性数组保存,假设根节点为1,父节点为n,则左子节点为2*n,右子节点为2*n+1 1.堆的插入 统一在数组末端进行插入,然后比较 阅读全文
posted @ 2019-03-10 15:39 冷血无情康纳酱 阅读(114) 评论(0) 推荐(0) 编辑
摘要: 平衡树是一种特殊的二叉树,引入了平衡因子概念,对于每一个节点,统计左子树与右子树的高度,两者的差即为平衡因子,平衡因子为-1,1,0时我们认为树是平衡的,当出现2,-2时则认为树失衡了,需要进行调整。同时由于一颗子树的失衡会向根节点传递,所以我们只需要将第一个失衡子树平衡,就能保持整体的平衡。 平衡 阅读全文
posted @ 2019-03-10 14:30 冷血无情康纳酱 阅读(224) 评论(0) 推荐(0) 编辑
摘要: 二叉树删除涉及到多种情况,需要逐个处理 1.当前节点为叶子节点 直接删除 2.当前节点右子树为空 复制左子树中最大的值,用该值替代当前节点,删除左子树中原节点。 3.当前节点右子树不为空 复制右子树中最小的值,用该值替代当前节点,删除右子树中原节点。 总结 1.如果二叉树中存在大于等于或小于等于的关 阅读全文
posted @ 2019-03-10 12:49 冷血无情康纳酱 阅读(766) 评论(0) 推荐(0) 编辑