首页 > 编程语言 > 详细

树状数组及其实现

时间:2021-08-24 11:22:36      阅读:16      评论:0      收藏:0      [点我收藏+]

树状数组及其实现

引言

树状数组也是一种通过数组来表示树的结构,我们所熟悉的堆与完全二叉树通常也会使用这种方式实现,即,使用数组来表示树。至于完全二叉树(堆是一种特殊的完全二叉树),树中元素之间的关系较为简单,主要是父节点与子节点之间的关系,这种关系在数组中我们可以通过下标来实现。例如,如果用数组表示一棵完全二叉树的时候,(下标从 1 开始),对于下标为 \(i\) 的节点,左孩子节点为 \(2i\) 右孩子为 \(2i+1\) 。那么我们可以得出结论,完全二叉树的数组是用数组下标来表示节点之间的父子关系,树状数组不仅能够使用下标表示节点之间的父子关系,还可以表示一些节点(我们称之为区间) 之间的关系。

什么是树状数组

技术分享图片

节点的意义与节点间的关系

与完全二叉树不同的是,完全二叉树我们的目的是将树映射到数组上,使用数组的下标来表示树中节点间的关系。个人觉得树的结构,本质是探究节点的关系,节点是关键,那么数组最重要的就是下标了。树状数组我个人的理解就是

在上图中,数组 \(A\) 表示原始数组,

树状数组及其实现

原文:https://www.cnblogs.com/wevolf/p/15179077.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!