定义
我们已经了解了线段树的许多操作与结构
但是有一些缺点:
1.它是递归操作的
所以空间可能会很大
2.叶子节点深度都不同
这样操作会很麻烦
3.代码量太大...
所以现在可以引进zkw线段树
和普通的线段树相比,zkw线段树主要有这样几个不同点:
1.所有的叶子结点都在同一深度
2.在左右两端各增加了一个哨兵
3.每个点可以根据自己的编号计算父节点编号
以上三点保证了zkw线段树可以自底向上非递归
做法:
怎么做呢?
我们现在要在最底层设置n个点,同时还要加上2个卫兵(作用后面会有),所以最底层至少n+2个点
根据完全二叉树的性质(第i层会有个点)