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

网站系统中备案申请表培训网站方案

网站系统中备案申请表,培训网站方案,学院网站的系统建设方式,网站推广平台怎么做目录 一 二叉树的顺序结构 二 堆的概念及结构 三 堆的实现 1 包含所有接口 (Heap.h) 2 初始化,销毁和交换#xff08;Heap.c) 3 向上调整#xff08;Heap.c) 4 插入#xff08;Heap.c) ​5 向下调整#xff08;Heap.c) 6 删除#xff08;Heap.c) ​7 打印#…目录 一 二叉树的顺序结构 二 堆的概念及结构 三 堆的实现 1 包含所有接口 (Heap.h) 2 初始化,销毁和交换Heap.c) 3 向上调整Heap.c) 4 插入Heap.c) ​5 向下调整Heap.c) 6 删除Heap.c) ​7 打印Heap.c) 8 返回堆顶Heap.c) 9 判断是否为空Heap.c) 10 测试Test.c) 一 二叉树的顺序结构 顺序结构存储就是使用数组来存储一般使用数组只适合表示完全二叉树因为不是完全二叉树会有空 间的浪费。而现实中使用中只有堆才会使用数组来存储关于堆我们后面的章节会专门讲解。二叉树顺 序存储在物理上是一个数组在逻辑上是一颗二叉树。 二 堆的概念及结构 如果有一个关键码的集合K { … }把它的所有元素按完全二叉树的顺序存储方式存储 在一个一维数组中并满足 且 ( 且 ) i 01 2…则称为小堆(或大堆)。将根节点最大的堆叫做最大堆或大根堆根节点最小的堆叫做最小堆或小根堆。 堆的性质 堆中某个节点的值总是不大于或不小于其父节点的值 堆总是一棵完全二叉树。 三 堆的实现 1 包含所有接口 (Heap.h) #pragma once #includestdbool.h #includeassert.h #includestdlib.h #includestdio.htypedef int HPDataType; typedef struct Heap {HPDataType* a;int size;int capacity; }HP;//向上调整 void AdjustUp(HPDataType* a, int child);//向下调整 void AdjustDown(HPDataType* a, int n, int parent);//交换 void Swap(HPDataType* p1, HPDataType* p2); //打印 void HeapPrint(HP* php); //初始化 void HeapInit(HP* php); //销毁 void HeapDestroy(HP* php); //插入 void HeapPush(HP* php, HPDataType x); //删除 void HeapPop(HP* php); //返回堆顶 HPDataType HeapTop(HP* php); //是否为空 bool HeapEmpty(HP* php); 2 初始化,销毁和交换Heap.c) #includeHeap.hvoid HeapInit(HP* php) {assert(php);php-a NULL;php-size php-capacity 0; }//销毁 void HeapDestroy(HP* php) {assert(php);free(php-a);php-a NULL;php-size php-capacity 0; }//交换 void Swap(HPDataType* p1, HPDataType* p2) {int tmp *p1;*p1 *p2;*p2 tmp; } 3 向上调整Heap.c) 时间复杂度 O(logN) //向上调整 void AdjustUp(HPDataType* a, int child) {int parent (child - 1) / 2;while (child 0){if (a[child] a[parent])//如果建大堆 就改成 a[child] a[parent]{Swap(a[child], a[parent]);child parent;parent (child - 1) / 2;}else{break;}} }4 插入Heap.c) //插入 void HeapPush(HP* php, HPDataType x) {assert(php);if (php-size php-capacity){int newcapacity (php-capacity 0 ? 4 : php-capacity * 2);HPDataType* tmp (HPDataType*)realloc(php-a, sizeof(HPDataType) * newcapacity);if (tmp NULL){perror(realloc fail);exit(-1);}php-a tmp;php-capacity newcapacity;}php-a[php-size] x;php-size;AdjustUp(php-a, php-size - 1); } 5 向下调整Heap.c) 时间复杂度 O(logN) //向下调整 void AdjustDown(HPDataType* a, int n, int parent) {int child parent * 2 1;while (child n){//找小的那个孩子if (child1 n a[child1] a[child])//child1n 防止数据越界 如果想改成大堆 改成{child;}if (a[child] a[parent])//如果想大堆 改成{Swap(a[child], a[parent]);parent child;child parent * 2 1;}else{break;}} }6 删除Heap.c) //删除 void HeapPop(HP* php) {assert(php);assert(php-size 0);Swap(php-a[0], php-a[php-size - 1]);php-size--;AdjustDown(php-a, php-size, 0); } 7 打印Heap.c) //打印 void HeapPrint(HP* php) {assert(php);for (size_t i 0; i php-size; i){printf(%d , php-a[i]);}printf(\n); } 8 返回堆顶Heap.c) //返回堆顶 HPDataType HeapTop(HP* php) {assert(php);assert(php-size 0);return php-a[0]; } 9 判断是否为空Heap.c) bool HeapEmpty(HP* php) {assert(php);return php-size 0; }//堆为空返回1 true //堆不为空 返回0 false 10 测试Test.c) 小堆情况升序 #includeHeap.hint main() {int a[] { 2,3,5,7,4,6,8,65,100,70,32,50,60 };HP hp;HeapInit(hp);for (int i 0; i sizeof(a) / sizeof(int); i){HeapPush(hp, a[i]);}HeapPrint(hp);while (!HeapEmpty(hp)){printf(%d , HeapTop(hp));HeapPop(hp);}HeapDestroy(hp);return 0; }但是这种排序方式有明显的缺陷 1、先有一个堆的数据结构 2、空间复杂度复杂度的消耗 所以我们可以改进一下 用真正的堆排序 堆排序有很多细节 所以放在后面一节讲 本节很基础 与栈的实现有很多相似之处 大家也可以看我之前对栈的讲解 以此加深印象 继续加油!
http://www.hkea.cn/news/14387985/

相关文章:

  • 樱花12e56手机优化助手下载
  • 开电商网站需要多少钱重庆网站建设如何
  • 怎么做网站链接天猫运营培训
  • 贵州省住房和城乡建设厅网网站网络推广优化方法
  • 我想克隆个网站 怎么做三水网站建设哪家好
  • 青海网站如何建设软件开发和网站开发
  • 哪些网站做的美网站一次性链接怎么做的
  • 中企动力做网站好吗南昌网站建设和推广
  • 佛山做外贸网站的公司吗全网搜索软件
  • 网站开发服务 税网站建设哪家g好
  • 江西旺达建设工程有限公司网站怎么做一个网站平台
  • 免费建设网站wordpress重置密码忘记
  • 静态手机网站seo文章代写平台
  • 四川住房城乡建设周刊网站wordpress 主题 教程
  • 有哪些做的很漂亮的网站公司网站建站要多少钱一年
  • 网站建设学什么语音网站备案需要资料
  • mip网站实例h5页面和小程序的页面有什么区别
  • 社交网络推广方法重庆网站推广优化软件业务
  • wordpress制作网站教程湖北手机版建站系统价格
  • 普通门户网站开发价格wordpress 此网页包含重定向循环
  • 网站做百度百科的好处同城手机网站开发
  • 72建站网杭州建设网双标化工地2022年
  • 榆垡网站建设洛阳制作网站公司吗
  • 绍兴市交通建设有限公司网站财务软件费用计入什么科目
  • 哪个网站做h5好宁波网站制作方案
  • 站群系统的优劣什么样的网站适合推广
  • 天津市建设 银行网站教做视频的网站
  • 网站建设设计计划表天津网站建设定制
  • 怎样做网站 app教程上海网站建设电话
  • 上海建设网站平台自己做的网站响应速度慢