木材板材网站制作方案创意设计产业包括哪些

pingmian/2026/1/23 1:56:24/文章来源:
木材板材网站制作方案,创意设计产业包括哪些,网站开发必备人员,宜昌市工程造价信息网数据结构 | 堆【图解】 文章目录 数据结构 | 堆【图解】堆的概念及结构堆的实现堆的初始化堆的插入【重点】堆的删除【重点】取堆顶的数据堆的数据个数堆的判空堆的销毁 全部代码 堆的概念及结构 堆#xff08;heap#xff09;#xff1a; 一种有特殊用途的数据结构——用来…数据结构 | 堆【图解】 文章目录 数据结构 | 堆【图解】堆的概念及结构堆的实现堆的初始化堆的插入【重点】堆的删除【重点】取堆顶的数据堆的数据个数堆的判空堆的销毁 全部代码 堆的概念及结构 堆heap 一种有特殊用途的数据结构——用来在一组变化频繁发生增删查改的频率较高的数据集中查找最值。 堆在物理层面上表现为一组连续的数组区间long[] array 将整个数组看作是堆。 堆在逻辑结构上一般被视为是一颗完全二叉树。 满足任意结点的值都大于其子树中结点的值叫做大堆或者大根堆或者最大堆反之则是小堆或者小根堆或者最小堆。当一个堆为大堆时它的每一棵子树都是大堆。 堆一般是数组数据看做一颗完全二叉树 小堆要求任意一个父亲孩子大堆要求任意一个父亲孩子 这里是没有中堆的 堆的实现 Heap.h 需要实现堆的函数 #pragma once#includestdio.h #includestdlib.h #includeassert.h #includestdbool.htypedef int HPDataType;typedef struct Heap {HPDataType* a;int size;int capacity; }Heap;// 堆的构建 void HeapInit(Heap* hp); // 堆的插入 void HeapPush(Heap* hp, HPDataType x); // 堆的删除 void HeapPop(Heap* hp); // 取堆顶的数据 HPDataType HeapTop(Heap* hp); // 堆的数据个数 int HeapSize(Heap* hp); // 堆的判空 bool HeapEmpty(Heap* hp); // 堆的销毁 void HeapDestory(Heap* hp);接下来我们就开始实现堆~~ 堆的初始化 这里直接初始化不多介绍 void HeapInit(Heap* hp) {assert(hp);hp-a NULL;hp-capacity hp-size 0; }堆的插入【重点】 检查空间是否满了满了就扩容然后将值插入到最后最后向上调整 向上调整算法依次pk 这里的size是size-1而不是size因为是放完数据后size了一下然后要取size-1的位置如果孩子节点小于父亲节点就交换然后再将父亲节点给了孩子节点再进行(-1)/2如果大于等于父亲就跳出循环跳出的条件是child 0这里的向上时间复杂度是O(logN) //交换 void Swap(int* p1, int* p2) {HPDataType tmp *p1;*p1 *p2;*p2 tmp; } //向上调整 void AjustUp(HPDataType* a, HPDataType child) {HPDataType parent (child - 1) / 2;while (child 0){if (a[child] a[parent]){Swap(a[child], a[parent]);child parent;parent (parent - 1) / 2;}else{break;}} }// 堆的插入 void HeapPush(Heap* hp, HPDataType x) {assert(hp);if (hp-capacity hp-size){HPDataType newcapacity hp-capacity 0 ? 4 : hp-capacity * 2;HPDataType* tmp (HPDataType*)realloc(hp-a, sizeof(HPDataType) * newcapacity);if (tmp NULL){perror(realloc fail\n);exit(-1);}hp-a tmp;hp-capacity newcapacity;}hp-a[hp-size] x;hp-size;AjustUp(hp-a, hp-size - 1); }我们测试一下~~ int main() {Heap hp;int a[] { 27,15,19,18,28,34,65,49,25,37 };HeapInit(hp);int sz sizeof(a) / sizeof(a[0]);for (int i 0; i sz; i){HeapPush(hp, a[i]);}return 0; }堆的删除【重点】 堆的删除是堆顶上的数据而不是删除根节点删除最下面的那个数据是没有意义的~~ 删除后要进行调整 步骤一 交换 步骤二 向下调整算法 这里的向下时间复杂度是O(logN)和向上一样调整高度次 //向下调整 void AdjustDown(int* a, int size, int parent) {//假设左孩子小假设错了就更新int child parent * 2 1;while (child size){if (a[child 1] a[child]){child;}if (a[child] a[parent]){Swap(a[child], a[parent]);parent child;child parent * 2 1;}else{break;}} } // 堆的删除 void HeapPop(Heap* hp) {assert(hp);assert(hp-size 0);//首尾交换Swap(hp-a[0], hp-a[hp-size - 1]);hp-size--;//从根向下调整AdjustDown(hp-a, hp-size, 0); }取堆顶的数据 这里直接取数组第一个元素就可以了 HPDataType HeapTop(Heap* hp) {assert(hp);assert(hp-size 0);return hp-a[0]; }堆的数据个数 这里也一样取size int HeapSize(Heap* hp) {assert(hp);return hp-size; }堆的判空 判断size是否为0 bool HeapEmpty(Heap* hp) {assert(hp);return hp-size 0; }堆的销毁 销毁也不多说了很简单 void HeapDestory(Heap* hp) {assert(hp);free(hp-a);hp-capacity hp-size 0; }全部代码 //小堆算法 // 堆的构建 void HeapInit(Heap* hp) {assert(hp);hp-a NULL;hp-capacity hp-size 0; }//交换 void Swap(int* p1, int* p2) {HPDataType tmp *p1;*p1 *p2;*p2 tmp; }//向上调整 void AdjustUp(HPDataType* a, HPDataType child) {HPDataType parent (child - 1) / 2;while (child 0){if (a[child] a[parent]){Swap(a[child], a[parent]);child parent;parent (parent - 1) / 2;}else{break;}} }// 堆的插入 void HeapPush(Heap* hp, HPDataType x) {assert(hp);if (hp-capacity hp-size){int newcapacity hp-capacity 0 ? 4 : hp-capacity * 2;HPDataType* tmp (HPDataType*)realloc(hp-a, sizeof(HPDataType) * newcapacity);if (tmp NULL){perror(realloc fail\n);exit(-1);}hp-a tmp;hp-capacity newcapacity;}hp-a[hp-size] x;hp-size;AdjustUp(hp-a, hp-size - 1); }//向下调整 void AdjustDown(int* a, int size, int parent) {//假设左孩子小假设错了就更新int child parent * 2 1;while (child size){if (child 1 size a[child 1] a[child]){child;}if (a[child] a[parent]){Swap(a[child], a[parent]);parent child;child parent * 2 1;}else{break;}} } // 堆的删除 void HeapPop(Heap* hp) {assert(hp);assert(hp-size 0);//首尾交换Swap(hp-a[0], hp-a[hp-size - 1]);hp-size--;//从根向下调整AdjustDown(hp-a, hp-size, 0); } // 取堆顶的数据 HPDataType HeapTop(Heap* hp) {assert(hp);assert(hp-size 0);return hp-a[0]; } // 堆的数据个数 int HeapSize(Heap* hp) {assert(hp);return hp-size; } // 堆的判空 bool HeapEmpty(Heap* hp) {assert(hp);return hp-size 0; }// 堆的销毁 void HeapDestory(Heap* hp) {assert(hp);free(hp-a);hp-capacity hp-size 0; }以上是小堆的算法大堆也是一样的只需要改几个符号就可以了~~ 堆的介绍就到这里结束了感谢收看~~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/86640.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

河北省电力建设第二工程公司网站食品企业网站建设

1、问题概述 常见情景1:在VUE中使用img显示图片的时候,通过传参的方式传入图片的路径和名称,VUE不加载本地资源而是通过http://localhost:8080/...的地址去加载网络资源,从而出现了图片无法显示的情况。 常见情景2:针…

建设厅网站修改密码宝安哪有网站建设

jQuery是一个非常优秀的 JavaScript 框架,使用简单灵活,同时还有许多成熟的插件可供选择。其中,jQuery 最令人印象深刻的应用之一就是对图片的处理,它可以让帮助你在你的项目中加入各种精美的图片展示效果。下面向大家分享精心挑选…

网站英文版怎么做企业网站怎么制作流程

WebStorm取消默认style样式折叠: File--->Settings打开一个窗口 Edit--->CodeFolding 把HTML style attribute的前面的钩去掉[取消勾选] 右下角点击Apply--->ok

青海建设厅网站尚少岩直接修改网页源码并执行

今天是最后一章哦,主要是讲jmeter性能测试脚本相关的。原创不易,点个赞意思一下呗! 一. 脚本开发方式大纲 1、badboy进行录制和导出 badboy下载地址: 链接:https://pan.baidu.com/s/18Po3RssrBRSnn_-xsHop1g 提取码&#xff1…

平面设计做画册用网站给公司建立网站不可以做到的是

文章目录 参考基于价值函数的缺点策略梯度算法REINFORCE 算法策略梯度推导进阶策略函数的设计离散动作的策略函数连续动作的策略函数 参考 第九章 策略梯度 之前介绍的 DQN 算法属于基于价值(value-based)的算法,基于策略梯度的算法直接对策略本身进行优化。 将策…

做网站怎么开发程序注册公司流程一览表

题目 给定一个未排序的整数数组 nums ,找出数字连续的最长序列(不要求序列元素在原数组中连续)的长度。 请你设计并实现时间复杂度为 O(n) 的算法解决此问题。 示例 1: 输入:nums [100,4,200,1,3,2] 输出&#xff1a…

官方网站投诉平台wordpress 批量发布器

Android工程师进阶第八课 AMS、WMS和PMS 一、Binder通信 【Android Framework系列】第2章 Binder机制大全_android binder-CSDN博客 Android Binder机制浅谈以及使用Binder进行跨进程通信的俩种方式(AIDL以及直接利用Binder的transact方法实现)_bind…

网络销售怎么才能找到客户企业网站优化培训

题目链接 [CSP-S 2021] 括号序列 题目描述 小 w 在赛场上遇到了这样一个题:一个长度为 n n n 且符合规范的括号序列,其有些位置已经确定了,有些位置尚未确定,求这样的括号序列一共有多少个。 身经百战的小 w 当然一眼就秒了这…

网站开发简单的框架emlog与wordpress区别

话题: 低代码专访前言:2019年开始,低代码爆火。有人认为它是第四代编程语言,有人认为它是开发模式的颠覆,也有人认为是企业管理模式的变革……有很多声音,社区讨论很热烈。CSDN随后展开低代码平台产品系列活…

外贸怎么做网站前端网站怎么做

报喜不报忧,每天都在为鸡零狗碎推诿扯皮,属实是有辱师门。 通过软考,目前算是真正有意义的事情。 虽然都说高项的论文是个玄学,但是道听途说了一些通关感想还是蛮有启发的。 文件要求 参考了一份广西省高级工程师评审的文件&am…

做中介网站需要多少钱钓鱼网站的制作教程

先看下连接mysql本地库的2种方式。第一种运行cmd,键入mysql -uroot -p,如果提示mysql不是内部或外部命令,也不是可运行的程序或批处理文件。就将mysql的安装路径添加的系统的环境变量中。连接成功的界面如下第二种方式:安装程序中搜索mysql找…

网站访客qq获取系统 报价cp网站开发多少钱

介绍 持久性上下文使实体状态转换进入队列,该实体状态转换在刷新后转换为数据库语句。 对于托管实体,Hibernate可以代表我们自动检测传入的更改并安排SQL UPDATE。 这种机制称为自动脏检查 。 默认的脏检查策略 默认情况下,Hibernate检查所有…

专业做校园文化的网站怎样建房

[css] 为什么说css中能用子代选择器的时候不要用后代选择器? 选择从右到左依次解析匹配,所以后代选择器会去找它的所有父级, 而子代选择器只会选择直接的父级;减少匹配次数,提高效率个人简介 我是歌谣,欢…

网站开发课程设计实验报告网站轮播代码

在企业开发中,经常会碰到一些消息要及时推送到企业员工的手中。so 下面来说怎么向企业微信中的员工发消息。本人只是记录下开发过程,详细参考https://work.weixin.qq.com/api/1.准备注册企业微信公司获取企业ID新开企业微信应用获取应用的Agentid&#x…

项目网站分析东营网站推广公司

简介 SQL注入攻击指的是通过构建特殊的输入作为参数传入Web应用程序,而这些输入大都是SQL语法里的一些组合,通过执行SQL语句进而执行攻击者所要的操作,其主要原因是程序没有细致地过滤用户输入的数据,致使非法数据侵入系统。 根据…

电子商务网站建设策略百度手机关键词排名工具

文章目录 1 视频地址1.1 基本参数1.2 ISO下载地址:1.3 开启ssh1.3.1 使用root用户进行1.3.2 修改ssh配置1.3.3 关闭 SELINUX 2 查询虚拟机的ip2.1 联网2.2 桌面打开终端查询虚拟机ip 3 连接Xftp4 连接SecureRT 1 视频地址 01-搭建VM虚拟机Centos7 Oracle版 配置ss…

从零做网站网站建设流程与构架

反射 反射机制是 Java 语言提供的一种基础功能,赋予程序在运行时自省(introspect)的能力。简单来说就是通过反射,可以在运行期间获取、检测和调用对象的属性和方法。 反射的使用场景 在现实中反射的使用场景有很多,比如以下几个。 使用场景一:编程工具 IDEA 或 Eclip…

如何设置自己网站的关键词机械厂做网站

文章目录目录1.分布式文件系统1.1 计算机集群概念1.2 分布式文件系统结构2.HDFS简介2.1 HDFS设计的目标2.2HDFS的局限性2.3 块的概念2.4 HDFS主要组件及其功能2.4.1 名称节点2.4.2 第二名称节点2.4.3 数据节点3.HDFS体系结构3.1 HDFS体系结构介绍3.2 HDFS体系结构的局限性4.HDF…

如何建设阿里巴巴网站华为手机官网入口

目录 文章目录 前言 一、矩阵号系统是什么? 二、使用步骤 1.创建推广项目 2.多账号授权 3.企业号智能客服系统 总结 前言 短视频多账号矩阵系统,通过多账号一键授权管理的方式,为运营人员打造功能强大及全面的“矩阵式“管理平台。…

两款WordPress加速四川seo策略

UMA UMA中文翻译叫:一致性内存访问 多个CPU通过同一根前端总线(FSB)来访问内存(所有的内存访问都需要通过北桥芯片来完成),若多个CPU访问内存的不同内存单元还是相同内存单元,同一时刻&#x…