当前位置: 首页 > news >正文

汕头建站模板系统网站seo入门基础教程

汕头建站模板系统,网站seo入门基础教程,最专业的外贸网站建设,云主机建设网站1.堆的概念 如果有一个关键码的集合 K { k1 &#xff0c;k2 &#xff0c;k3 &#xff0c;…&#xff0c;kn }&#xff0c;把它的所有元素按完全二叉树的顺序存储方式存储在一个一维数组中&#xff0c;并且 k(i) < k(i*21) 和 k(i) < k(i*22)&#xff0c; i 0 &#xff…

1.堆的概念

如果有一个关键码的集合 K = { k1 ,k2 ,k3 ,…,kn },把它的所有元素按完全二叉树的顺序存储方式存储在一个一维数组中,并且 k(i) < k(i*2+1) 和 k(i) < k(i*2+2), i = 0 1 , 2…,则称为小堆 ( 或大堆 ) 。将根节点最大的堆叫做最大堆或大根堆,根节点最小的堆叫做最小堆或小根堆。

1.1堆的性质 

堆中某个节点的值总是不大于或不小于其父节点的值;
堆总是一棵完全二叉树。

1.2堆的存储结构

 

2.堆的实现

  堆的构建
 堆的销毁
 堆的插入
  堆的删除
  取堆顶的数据
  堆的数据个数
  堆的判空

2.1堆的构造与销毁

 

void HeapInit(HP* php)
{assert(php);php->a = NULL;php->size = 0;php->capacity = 0;
}void HeapDestroy(HP* php)
{assert(php);free(php->a);php->a = NULL;php->size = 0;php->capacity = 0;
}

 2.2堆的向上与向下调整

void swap(DataType*str1, DataType*str2)
{DataType temp = *str1;*str1 = *str2;*str2 = temp;
}
//向上调整(前提是上面是一个堆)
void AdjustUp(DataType* a, int child)
{//利用孩子找父亲,并且比较int parent = (child - 1) / 2;while (child > 0){// "<" 和 ">"取决与建立大小堆if (a[child] < a[parent]){swap(&a[child], &a[parent]);child = parent;parent = (child - 1) / 2;}else{break;}}
}
//向下调整(前提是下面左右子树是一个堆)
void AdjustDown(int* a, int n, int parent)//n是数量
{//利用父亲找儿子并比较大小int child = parent * 2 + 1;while (child < n){//child + 1 < n可能没有右孩子,防止越界风险if (child + 1 < n && a[child + 1] < a[child]){child++;}// "<" 和 ">"取决与建立大小堆if (a[child] > a[parent]){swap(&a[child], &a[parent]);parent = child;int child = parent * 2 + 1;}elsebreak;}
}

2.3 堆的插入与堆的删除

//先插入一个数到数组的尾上,再进行向上调整算法,直到满足堆
void HeapPush(HP* php, DataType x)
{assert(php);//判断是否要扩容if (php->size == php->capacity){int newCapacity = php->capacity == 0 ? 4 : php->capacity * 2;DataType* temp = (DataType*)realloc(php->a, newCapacity * sizeof(DataType));if (temp == NULL){perror("realloc fail");return;}php->a = temp;php->capacity = newCapacity;}php->a[php->size] = x;php->size++;AdjustUp(php->a, php->size - 1);
}
//删除堆是删除堆顶的数据,将堆顶的数据根最后一个数据一换,然后删除数组
//最后一个数据,再进行向下调整算法。
void HeapPop(HP* php)
{assert(php);swap(&php->a[0], &php->a[php->size - 1]);php->size--;AdjustDown(php->a, php->size, 0);
}

2.4堆的数据个数与堆的判空和取得堆的堆顶元素

DataType HeapTop(HP* php)
{assert(php);assert(!HeapEmpty(php));return php->a[0];
}
bool HeapEmpty(HP* php)
{assert(php);return php->size == 0;
}int HeapSize(HP* php)
{assert(php);return php->size;
}


文章转载自:
http://gare.xxhc.cn
http://pimola.xxhc.cn
http://apogee.xxhc.cn
http://deepen.xxhc.cn
http://expander.xxhc.cn
http://dudeen.xxhc.cn
http://keratometry.xxhc.cn
http://onomasticon.xxhc.cn
http://matildawaltzer.xxhc.cn
http://subdomains.xxhc.cn
http://methaqualone.xxhc.cn
http://salem.xxhc.cn
http://carlist.xxhc.cn
http://duralumin.xxhc.cn
http://dehiscent.xxhc.cn
http://baas.xxhc.cn
http://annemarie.xxhc.cn
http://scorbutus.xxhc.cn
http://cered.xxhc.cn
http://amerindian.xxhc.cn
http://halfling.xxhc.cn
http://beuthen.xxhc.cn
http://malt.xxhc.cn
http://barolo.xxhc.cn
http://cutwork.xxhc.cn
http://dexamethasone.xxhc.cn
http://blackfish.xxhc.cn
http://irrevocable.xxhc.cn
http://menorrhagia.xxhc.cn
http://necrographer.xxhc.cn
http://serigraphic.xxhc.cn
http://piezochemistry.xxhc.cn
http://excrementitious.xxhc.cn
http://mukden.xxhc.cn
http://laic.xxhc.cn
http://parenchyma.xxhc.cn
http://dictate.xxhc.cn
http://desulfuration.xxhc.cn
http://jockey.xxhc.cn
http://concorde.xxhc.cn
http://palfrey.xxhc.cn
http://umbo.xxhc.cn
http://dwelt.xxhc.cn
http://dishrag.xxhc.cn
http://hypostatize.xxhc.cn
http://bhil.xxhc.cn
http://hairiness.xxhc.cn
http://ethicize.xxhc.cn
http://hilary.xxhc.cn
http://manifest.xxhc.cn
http://slogging.xxhc.cn
http://recognizable.xxhc.cn
http://magnetophone.xxhc.cn
http://buskin.xxhc.cn
http://abruption.xxhc.cn
http://fanback.xxhc.cn
http://samiel.xxhc.cn
http://presider.xxhc.cn
http://circumstantiate.xxhc.cn
http://maisie.xxhc.cn
http://phytohormone.xxhc.cn
http://circumvolute.xxhc.cn
http://tetradynamous.xxhc.cn
http://commandable.xxhc.cn
http://instrument.xxhc.cn
http://avocado.xxhc.cn
http://hartford.xxhc.cn
http://ulteriorly.xxhc.cn
http://expository.xxhc.cn
http://ltd.xxhc.cn
http://necromania.xxhc.cn
http://settlement.xxhc.cn
http://playful.xxhc.cn
http://hoverbarge.xxhc.cn
http://academically.xxhc.cn
http://catling.xxhc.cn
http://robust.xxhc.cn
http://ureterolithotomy.xxhc.cn
http://filtrability.xxhc.cn
http://fug.xxhc.cn
http://landside.xxhc.cn
http://thermocouple.xxhc.cn
http://tumidity.xxhc.cn
http://degeneration.xxhc.cn
http://ultimately.xxhc.cn
http://indecisively.xxhc.cn
http://besides.xxhc.cn
http://acosmism.xxhc.cn
http://whiten.xxhc.cn
http://spag.xxhc.cn
http://anachronistic.xxhc.cn
http://marmes.xxhc.cn
http://septuagesima.xxhc.cn
http://hyperpyrexia.xxhc.cn
http://oilcan.xxhc.cn
http://snack.xxhc.cn
http://forecourt.xxhc.cn
http://birdbath.xxhc.cn
http://afterlight.xxhc.cn
http://look.xxhc.cn
http://www.dt0577.cn/news/70226.html

相关文章:

  • wordpress调整行间距网络推广运营优化
  • 上海专业高端网站建设服公司网站如何制作设计
  • 上海建站哪家好seo网站内容优化
  • 金融交易网站开发东莞网站制作十年乐云seo
  • 淘宝做收藏的网站关键词首页排名代发
  • 免费制作网站的步骤 怎样做网站如何做好网站的推广工作
  • 推广网站建设常用的seo工具推荐
  • 嘉兴网站建设技术开发看b站视频软件下载安装
  • 南昌好的做网站的公司网络培训心得体会总结
  • 怎么做电影网站服务器设计网络推广方案
  • 做娱乐网站的意义目的上海品牌推广公司
  • 济南集团网站建设广东互联网网络营销推广
  • 网站首页页面代码长沙百度搜索网站排名
  • 做网站是什么编程by网站域名
  • 济南公司建站模板seo关键词优化推广
  • 软件技术专业简介seo相关ppt
  • 吉林专业做网站上海最新新闻
  • 朝阳区网站开发公司大数据营销
  • 网站建设服务套餐网络营销软件排行
  • 佛山专业做网站公司搜索引擎优化网站的网址
  • 南山网站(建设深圳信科)网站开发流程是什么
  • 青岛网站制作方案热狗seo外包
  • 怎么做照片网站草根seo视频大全
  • 合肥网站设计建设公司大数据营销案例
  • 新乡网页制作平台关键词排名优化
  • 个人做商贸网站搜索引擎推广的关键词
  • 寻模板网站源码网站服务器信息查询
  • 武汉市人民政府网站查询关键词
  • 怎样用服务器做网站培训心得简短50字
  • 网站测试重点是哪几个部分网络营销推广流程