秸秆可以发酵吗网站建设吗莱芜杂谈话题

news/2025/9/23 9:16:05/文章来源:
秸秆可以发酵吗网站建设吗,莱芜杂谈话题,中小企业网站建设与管理 王耀,深圳商标设计公司vi设计个人主页 水月梦镜花 个人专栏 C语言 #xff0c;数据结构 文章目录 一、顺序表二、实现思路1.存储结构2.初始化顺序表(SeqListInit)3.销毁顺序表(SeqListDestroty)4.打印顺序表(SeqListPrint)5.顺序表尾插(SeqListPushBack)and检查容量(SeqListCheckCapacity)6.顺序表头插(Se… 个人主页 水月梦镜花 个人专栏 C语言 数据结构 文章目录 一、顺序表二、实现思路1.存储结构2.初始化顺序表(SeqListInit)3.销毁顺序表(SeqListDestroty)4.打印顺序表(SeqListPrint)5.顺序表尾插(SeqListPushBack)and检查容量(SeqListCheckCapacity)6.顺序表头插(SeqLsitPushFront)7.顺序表尾删(SeqListPopBack)8.顺序表头删(SeqListPopFront)9.顺序表查找(SeqListFind)10.在pos位置前插入元素(SeqListInsert)11.删除pos位置的值(SeqListErase) 三、代码实现总结 一、顺序表 顺序表是用一段物理结构连续的存储单元依次存储数据元素的线性结构一般采用数组存储。 顺序表一般分为两种 静态顺序表使用定长数组实现动态顺数表使用动态开辟的数组实现 本篇文章顺序表是使用动态开辟的数组实现(动态顺序表)。要实现的功能如下 //初始化顺序表 void SeqListInit(SeqList* ps);//销毁顺序表 void SeqListDestroty(SeqList* ps);//打印顺序表 void SeqListPrint(SeqList* ps);//顺序表尾插 void SeqListPushBack(SeqList* ps, SLDateType x);//顺序表头插 void SeqLsitPushFront(SeqList* ps, SLDateType x);//顺序表尾删 void SeqListPopBack(SeqList* ps);//顺序表头删 void SeqListPopFront(SeqList* ps);//顺序表查找 int SeqListFind(SeqList* ps, SLDateType x);//在pos位置前插入元素 void SeqListInsert(SeqList* ps, int pos, SLDateType x);//删除pos位置的值 void SeqListErase(SeqList* ps, int pos);//检查容量 void SeqListCheckCapacity(SeqList* ps);二、实现思路 画图理解起来更佳 1.存储结构 我们重命名int类型为SLDataType方便以后我们修改顺序表存储元素的类型。 指针data指向动态开辟的空间变量sz记录有效的数据元素变量capacity记录动态开辟空间的大小。 typedef int SLDataType;typedef struct SeqList {SLDataType* data;int sz;int capacity; }SeqList;2.初始化顺序表(SeqListInit) 动态开辟一块空间用data指针保存空间首地址。 此时data指向空间中有效元素为0使sz 0变量capacity在等于此时开辟空间的大小。 #define SIZE 4void SeqListInit(SeqList* ps) {ps-data (SLDataType*)malloc(sizeof(SLDataType) * SIZE);if (ps-data NULL){perror(malloc);exit(-1);}ps-sz 0;ps-capacity SIZE; }3.销毁顺序表(SeqListDestroty) free所开辟的空间使data NULL此时数据有效元素为0空间大小为0那么sz 0capacity 0 //销毁顺序表 void SeqListDestroty(SeqList* ps) {assert(ps);//free(ps);free(ps-data);ps-data NULL;ps-sz 0;ps-capacity 0; }4.打印顺序表(SeqListPrint) 这个函数非常简单只要遍历一遍所开辟的空间即可注意范围是(0sz)。 //打印顺序表 void SeqListPrint(SeqList* ps) {assert(ps);for (int i 0; i ps-sz; i){printf(%d , ps-data[i]);}printf(\n);}5.顺序表尾插(SeqListPushBack)and检查容量(SeqListCheckCapacity) 每次加入数据时我们要先检查空间大小是否充足再加入数据 检查容量 在尾插数据前要检查空间大小是否充足(sz capacity)如果空间大小不够要扩大空间大小capacity记录新的空间大小。 尾插元素 变量sz不仅代表空间有效元素个数也代表了新数据元素将要放入的位置。所以尾插元素只要空间大小充足那么在data[sz]处放入数据即可不要忘记sz要加一。 //检查容量 void SeqListCheckCapacity(SeqList* ps) {SLDataType* tmp (SLDataType*)realloc(ps-data, sizeof(SLDataType) * ps-capacity * 2);if (tmp NULL){perror(realloc);exit(-1);}ps-data tmp;ps-capacity * 2; }//顺序表尾插 void SeqListPushBack(SeqList* ps, SLDataType x) {assert(ps);if (ps-sz ps-capacity){SeqListCheckCapacity(ps);}ps-data[ps-sz] x;ps-sz; }6.顺序表头插(SeqLsitPushFront) 顺序表除了尾插尾删不用挪到数据其它的增删都要挪到数据。 头插数据要先检查空间大小再向后挪到数据将数据放入data[0]处sz在加一。 //顺序表头插 void SeqLsitPushFront(SeqList* ps, SLDataType x) {assert(ps);if (ps-sz ps-capacity){SeqListCheckCapacity(ps);}int end ps-sz;while (end 0){ps-data[end] ps-data[end - 1];end--;}ps-data[0] x;ps-sz; }7.顺序表尾删(SeqListPopBack) 变量sz代表有效数据的个数那么只要sz减一就代表最后一个数据被删除了。 //顺序表尾删 void SeqListPopBack(SeqList* ps) {assert(ps);assert(ps-sz ! 0);ps-sz--; }8.顺序表头删(SeqListPopFront) 头删数据要将数据从后向前挪到覆盖掉第一个数据sz要减一。 //顺序表头删 void SeqListPopFront(SeqList* ps) {assert(ps);assert(ps-sz ! 0);for (int i 0; i ps-sz - 1; i){ps-data[i] ps-data[i 1];}ps-sz--; }9.顺序表查找(SeqListFind) 遍历一遍动态开辟的数组如果找到了就放回下标没有就放回-1。 //顺序表查找 int SeqListFind(SeqList* ps, SLDataType x) {assert(ps);for (int i 0; i ps-sz; i){if (ps-data[i] x){return i;}}return -1; }10.在pos位置前插入元素(SeqListInsert) 要先检查空间容量是否充足和要插入的位置是否合法(要在顺序表的有效数据内)再将pos下标后的数据向后挪到将数据放入data[pos]处sz加一。 这个函数思路简单但要注意下面两点 如果pos 0不就是要在顺序表第一个元素前插入元素不就是顺序表的头插。如果pos sz我们知道sz还表示下一个数据要放入的位置那么我在下一个数据要放入的位置前插入元素不就是顺序表的尾插。 理解这点后我们以后的头插尾插都可以用该函数复用。方便我们手撕顺序表 //在pos位置前插入元素 void SeqListInsert(SeqList* ps, int pos, SLDataType x) {assert(ps);assert(pos 0 pos ps-sz);if (ps-sz ps-capacity){SeqListCheckCapacity(ps);}int end ps-sz;while (end pos){ps-data[end] ps-data[end - 1];end--;}ps-data[pos] x;ps-sz; } 11.删除pos位置的值(SeqListErase) 删除pos位置处的数据先检查pos的合法性(要属于[0sz-1])要将数据从后向前挪到数据sz减一。 这个函数思路简单但要注意下面两点 如果pos 0不就是要删除第一个数据不就是头删。如果pos sz - 1不就是要删除最后一个数据不就是尾删。 所以对于尾删头删函数而言我们也可以使用该函数复用。 //删除pos位置的值 void SeqListErase(SeqList* ps, int pos) {assert(ps);assert(pos 0 pos ps-sz);for (int i pos; i ps-sz - 1; i){ps-data[i] ps-data[i 1];}ps-sz--; }三、代码实现 头删头插尾删尾插我都复用了SeqListInsert和SeqListErase。 SeqList.h 文件存放有关函数的声明以及结构体的声明 SeqList.c 文件存放函数的定义 //SeqList.h 文件#pragma once#include stdio.h #include stdlib.h #include assert.h#define SIZE 4typedef int SLDataType;typedef struct SeqList {SLDataType* data;int sz;int capacity; }SeqList;//初始化顺序表 void SeqListInit(SeqList* ps);//销毁顺序表 void SeqListDestroty(SeqList* ps);//打印顺序表 void SeqListPrint(SeqList* ps);//顺序表尾插 void SeqListPushBack(SeqList* ps, SLDateType x);//顺序表头插 void SeqLsitPushFront(SeqList* ps, SLDateType x);//顺序表尾删 void SeqListPopBack(SeqList* ps);//顺序表头删 void SeqListPopFront(SeqList* ps);//顺序表查找 int SeqListFind(SeqList* ps, SLDateType x);//在pos位置前插入元素 void SeqListInsert(SeqList* ps, int pos, SLDateType x);//删除pos位置的值 void SeqListErase(SeqList* ps, int pos);//检查容量 void SeqListCheckCapacity(SeqList* ps);//SeqList.c 文件#include SeqList.h//初始化顺序表 void SeqListInit(SeqList* ps) {ps-data (SLDataType*)malloc(sizeof(SLDataType) * SIZE);if (ps-data NULL){perror(malloc);exit(-1);}ps-sz 0;ps-capacity SIZE; }//检查容量 void SeqListCheckCapacity(SeqList* ps) {SLDataType* tmp (SLDataType*)realloc(ps-data, sizeof(SLDataType) * ps-capacity * 2);if (tmp NULL){perror(realloc);exit(-1);}ps-data tmp;ps-capacity * 2; }//顺序表尾插 void SeqListPushBack(SeqList* ps, SLDataType x) {/*assert(ps);if (ps-sz ps-capacity){SeqListCheckCapacity(ps);}ps-data[ps-sz] x;ps-sz;*/SeqListInsert(ps, ps-sz, x); }//打印顺序表 void SeqListPrint(SeqList* ps) {assert(ps);for (int i 0; i ps-sz; i){printf(%d , ps-data[i]);}printf(\n);}//销毁顺序表 void SeqListDestroty(SeqList* ps) {assert(ps);//free(ps);free(ps-data);ps-data NULL;ps-sz 0;ps-capacity 0; }//顺序表头插 void SeqLsitPushFront(SeqList* ps, SLDataType x) {/*assert(ps);if (ps-sz ps-capacity){SeqListCheckCapacity(ps);}int end ps-sz;while (end 0){ps-data[end] ps-data[end - 1];end--;}ps-data[0] x;ps-sz;*/SeqListInsert(ps, 0, x); }//顺序表尾删 void SeqListPopBack(SeqList* ps) {/*assert(ps);assert(ps-sz ! 0);ps-sz--;*/SeqListErase(ps, ps-sz - 1); }//顺序表头删 void SeqListPopFront(SeqList* ps) {/*assert(ps);assert(ps-sz ! 0);for (int i 0; i ps-sz - 1; i){ps-data[i] ps-data[i 1];}ps-sz--;*/SeqListErase(ps, 0); }//顺序表查找 int SeqListFind(SeqList* ps, SLDataType x) {assert(ps);for (int i 0; i ps-sz; i){if (ps-data[i] x){return i;}}return -1; }//在pos位置前插入元素 void SeqListInsert(SeqList* ps, int pos, SLDataType x) {assert(ps);assert(pos 0 pos ps-sz);if (ps-sz ps-capacity){SeqListCheckCapacity(ps);}int end ps-sz;while (end pos){ps-data[end] ps-data[end - 1];end--;}ps-data[pos] x;ps-sz; }//删除pos位置的值 void SeqListErase(SeqList* ps, int pos) {assert(ps);assert(pos 0 pos ps-sz);for (int i pos; i ps-sz - 1; i){ps-data[i] ps-data[i 1];}ps-sz--; }总结 以上就是顺序表的实现。谢谢支持

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

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

相关文章

欧美平面设计网站网站后台账户如何做会计分录

前言 由于需要使用不同的qt环境(PySide,PyQt)所以写了这个脚本,使用找到的随便一个rcc命令去转换qrc文件,然后将导入模块换成qtpy这个通用库(支持pyside2-6,pyqt5-6),老版本的是Qt.py(支持pysi…

网站建设属开票核定税种网络设计实践课程报告

在游戏开发领域,虚拟世界游戏定制开发是一项引人注目的任务,旨在满足客户独特的需求和愿景,创造一个完全个性化的虚拟世界游戏。这种类型的游戏开发需要专业的技能、深刻的游戏开发知识和密切的与客户合作,以确保游戏满足客户的期…

站长之家音效南京较好的网站制作公司

下面的讨论是我对《对编程实现拟人智能可行性的论证》这篇文章的“赋值与对象的标志”这一节的展开讨论。 标志能够使我们更好的思维(比如用轮廓标记物体对象,用兴奋强度标记回忆情况等等)。有思维标志、信息标志,单纯标志、组合…

温泉酒店网站建设方案英文网站优化

今天发现一个很有意思的问题,正常解决项目中产生的循环依赖,是找出今天添加的注入代码,然后一个个加lazy试过去,会涉及到类中新增的注入 但是今天修改了某个serviceimpl的方法,加入了Async方法后 就发生循环依赖了 ai…

河北网站建设推广自己做的网站怎么发布视频教程

一、说明 本系列是关于学习如何使用 ROS2、Docker 和 Github 设计、设置和维护机器人项目。 先决条件 — ROS2 软件包的基本知识、实现发布者、订阅者、操作并连接它们。 我们之前在 ROS2 中了解了不同的部分。但是,在我们转向实际的基于硬件的项目之前,…

ChatGPT 在招聘诈骗领域的应用

ChatGPT 在招聘诈骗领域的应用作者:张富春(ahfuzhang),转载时请注明作者和引用链接,谢谢!cnblogs博客 zhihu Github 公众号:一本正经的瞎扯事件经过 整个八月我都没有上班,在等待新的工作签证审批通过。 工作签证有…

FR报表下拉框高度(JS添加css样式方式)调整

FR报表下拉框高度调整解决方案 问题描述 在FR报表开发中,点击下拉框按钮后,下拉选项列表的高度太小,用户体验不佳。直接使用 $(.fr-combo-list).css("height","400px") 设置高度往往不生效,因…

基于Python+Vue开发的新闻管理系统源码+运行步骤

项目简介该项目是基于Python+Vue开发的新闻管理系统(前后端分离),这是一项为大学生课程设计作业而开发的项目。该系统旨在帮助大学生学习并掌握Python编程技能,同时锻炼他们的项目设计与开发能力。通过学习基于Pyt…

鸿蒙应用开发从入门到实战(十二):ArkUI组件ButtonToggle

ArkUI提供了丰富的系统组件,用于制作鸿蒙原生应用APP的UI,本文主要讲解按钮组件Button和Toggle的使用。大家好,我是潘Sir,持续分享IT技术,帮你少走弯路。《鸿蒙应用开发从入门到项目实战》系列文章持续更新中,陆…

宁波网站建设 慕枫科技旅游网站开发需求文档模板下载

2023年以来,在下游市场需求仍在复苏以及存量市场竞争加剧的背景之下,消费电子行业的发展受到不小挑战。不过,从中期业绩来看,可以发现一些企业还是具备一定的风险抵御能力,发展韧性显著,创维就是其中一员。…

贵州便宜网站推广优化电话濮阳建设公司网站

写在前面 如果您研究过美国企业早期发展的过程中的组织架构和战略规划,您就会发现,从18世纪末期以来一直到第二次世界大战前夕,美国工业公司基本上成立了技术和自己的实验室。从美国的石油公司,到汽车生产制造,还是化…

凉州区住房和城乡建设局网站汉阳网站建设公司

​10月19日,“提升数字安全技术,护航数字经济发展”高峰论坛在常州创意产业园圆满完成。本次论坛由常州国家高新区管委会、常州市工业和信息化局、常州市大数据管理中心主办,聚焦“数据安全”主题,邀请了超百位专家及企业代表共同…

wordpress获取站点副标题沈阳市网站建设企业

组合模式是把一个类别归为一个整体,并且组织多个整体之间的关系,使用通过树形结构来描述所有整体。一般的编写方式为一个类别对象下添加多个该对象的元素,该对象又为其它对象下的元素。简单来说就是一个学校有一个总部&#xff0…

小企业网站怎么做怎么做阿里巴巴外贸网站

Spring Cloud Vue前后端分离-第3章 SpringBoot项目技术整合 3-1 集成持久层框架Mybatis ORM:对象关系映射,Hibernate是全自动ORM,Mybatis是半自动ORM,Mybatis可以操作的花样更多,是首选的持久层框架 System模块集成Mybatis框架…

做食品网站需要什么资质吗seo网站首页推广

一、 实验目标: 熟悉Linux上C程序的编译和调试工具,包括以下内容: 1. 了解Linux操作系统及其常用命令 2. 掌握编译工具gcc的基本用法 3. 掌握使用gdb进行程序调试 二、实验环境与工件 1.个人电脑 2. Fedora 13 Linux 操作系统 3. gcc…

白云外贸型网站建设网络直接销售的营销方式

Python类分为两种,一种叫经典类,一种叫新式类。都支持多继承,但继承顺序不同。 新式类:从object继承来的类。(如:class A(object)),采用广度优先搜索的方式继承(即先水平搜索&#…

菠菜网站怎么做推广德州网站建设哪家好

网络存储概述: 随着企业中数据信息的不断增长,尤其当成百上千TB的数据需要备份、恢复,以及面临着扩容、灾难恢复等需求时,DAS(直接附加存储,就是通过与计算机主板的I/O接口,如IDE、SCSI相连接由…

国内专业建站平台站长工具域名解析

笔记本电脑 使用久了内部会累积有灰尘,这些灰尘可能会影响到正常的使用;还有些人觉得笔记本电脑内存不够,想要加装个内存条;亦或想要帮助笔记本电脑换cpu等,这些都是需要将笔记本电脑拆卸下来,然后才能够完成好相关的工作。宏基47…

网站模板安全管理系统微信公众平台入口

文章目录 一文教会女朋友学会日常Git使用!Git知识总结一、git基本知识了解1.git简介2.git区域了解3.git常用命令 二、常用工作场景1.克隆远程仓库,把仓库代码拉到本地2.推送代码到远程仓库(1)本地代码和远程仓库版本相同&#xff…

Spring框架中的注解主要有哪些

组件管理注解 @Component:通用组件注解,标识一个类为Spring管理的Bean @Service:业务逻辑层组件,是@Component的特化版本 @Repository:数据访问层组件,具有JDBC异常自动转换功能 @Controller:Web控制层组件,处…