zkw线段树(详解)

定义

我们已经了解了线段树的许多操作与结构

但是有一些缺点:

1.它是递归操作的

所以空间可能会很大

2.叶子节点深度都不同

这样操作会很麻烦

3.代码量太大...

所以现在可以引进zkw线段树

和普通的线段树相比,zkw线段树主要有这样几个不同点:

1.所有的叶子结点都在同一深度

2.左右两端各增加了一个哨兵

3.每个点可以根据自己的编号计算父节点编号

以上三点保证了zkw线段树可以自底向上非递归

做法:

 

怎么做呢?

我们现在要在最底层设置n个点,同时还要加上2个卫兵(作用后面会有),所以最底层至少n+2个点

根据完全二叉树的性质(第i层会有2^{i}个点)&#x

你可能感兴趣的:(树,图论,线段树,zkw线段树)