栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

特殊的完全二叉树——堆

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

特殊的完全二叉树——堆

1.堆的定义

        堆(heaps)是一种特殊的数据组织方式,STL 中的 priority_queue 容器适配器底层就是采用堆来组织数据存储的。

                      一般可用变量size存储堆的长度,数组名为heep。 2.堆的基本操作

3.堆的基本性质 

4.堆的存储 

5.堆的维护1——down()

代码如下: 

void down(int k)
{
	int t=k;
	if(k*2<=size && heep[k*2] 

6.堆的维护2——up()

 

代码如下:  

void up(int k)
{
	while(k/2 && heep[k/2]>heep[k])
	{
		swap(heep[k/2],heep[k]);
		k/=2;
	}
} 
7.堆的基本操作之caru()
int caru(int x)
{
	heep[++size]=x;
	up(size);
	//down(size);
} 
 8.堆的基本操作之min_dui()
int min_dui(int x)
{
	return heep[1];
} 
 9.堆的基本操作之dele_min()
int dele_min(int x)
{
	heep[1]=heep[size];
	size--;
	down(1);
} 
  10.堆的基本操作之dele_k()
int dele_k(int k)
{
	heep[k]=heep[size];
	size--;
	down(1),up(1);
} 
  11.堆的基本操作之xiug_k()
int xiug_k(int k)
{
	heep[k]=x;
	down(k),up(k);
} 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/991885.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号