注册证查询网站诸暨做幕墙连接件的公司

pingmian/2025/10/7 11:00:24/文章来源:
注册证查询网站,诸暨做幕墙连接件的公司,网站改版设计方案,开发帮app下载目录 #xff08;一#xff09;顺序表是一种数据结构 #xff08;二#xff09;顺序表 #xff08;1#xff09;顺序表的必要性 #xff08;2#xff09;顺序表的概念及结构 i#xff0c;线性表 #xff08;3#xff09;顺序表的分类 i#xff0c;顺序表和… 目录 一顺序表是一种数据结构 二顺序表 1顺序表的必要性  2顺序表的概念及结构  i线性表 3顺序表的分类 i顺序表和数组的区别 ii顺序表分类 三动态顺序表的实现 1头文件的解释 2手把手实现动态顺序表  a初始化 b销毁 c打印 d扩容 e头插与头删 f尾插与尾删 g指定位置插入与删除 h顺序表查找某一元素 正文开始 一顺序表是一种数据结构 顺序表是一种数据结构C语言有一种内置的数据结构数组 当我们想要大量使用同⼀类型的数据时通过手动定义大量的独立的变量对于程序来说可读性非常差我们可以借助数组这样的数据结构将大量的数据组织在⼀起结构也可以理解为组织数据的方式。 在我们的日常生活中也有一些结构的概念如 楼房牛棚排队的队列 等。我们希望通过一定组织来提高查找效率。 这都是数据结构的意义而数据结构是什么呢 数据结构是计算机存储、组织数据的⽅式。数据结构是指相互之间存在⼀种或多种特定关系的数据元素的集合。数据结构反映数据的内部构成即数据由那部分构成以什么方式构成以及数据元素之间呈现的结构。   顺序表是基于数组的数据结构。 二顺序表 1顺序表的必要性  【思考】有了数组为什么还要学习其他的数据结构 求数组的长度求数组的有效数据个数向下标为数据有效个数的位置插入数据注意这里是否要判断数组是否满了满了还能继续插入吗..... 假设数据量非常庞大频繁的获取数组有效数据个数会影响程序执行效率。   结论最基础的数据结构能够提供的操作已经不能完全满⾜复杂算法实现。         2顺序表的概念及结构  i线性表 线性表linear list是n个具有相同特性的数据元素的有限序列。线性表是⼀种在实际中⼴泛使用的数据结构常见的线性表顺序表、链表、栈、队列、字符串...... 线性表在逻辑上是线性结构也就说是连续的⼀条直线。但是在物理结构上并不⼀定是连续的线性表在物理上存储时通常以数组和链式结构的形式存储。 3顺序表的分类 i顺序表和数组的区别 顺序表的底层结构是数组对数组的封装实现了常用的增删改查等接口。 ii顺序表分类 顺序表分为静态顺序表和动态顺序表 a静态顺序表 概念使用固定长度的数组存储数据 typedef int SLDatetype;typedef struct SList {SLDatatype a[N];//定长数组Size_t size;//记录有效数据个数 }SL;b动态顺序表 概念按需申请可增容 typedef struct SList {SLDatatype* arr;size_t size;//有效数据个数size_t capacity;//容量空间 }SL; 通常情况下动态顺序表的适应性更广使用场景多。 三动态顺序表的实现 这里不加解释直接给出头文件根据头文件的函数声明实现顺序表的功能初始化销毁打印扩容头插与头删尾插与尾删指定位置插入与删除以及查找顺序表的某一元素。 共11个功能 ​#includestdio.h #includestdlib.h #includestring.h #includeassert.h#define INIT_CAPACITY 4 typedef int SLDataType; // 动态顺序表 -- 按需申请 typedef struct SeqList {SLDataType* a;int size; // 有效数据个数int capacity; // 空间容量 }SL;//初始化和销毁 void SLInit(SL* ps); void SLDestroy(SL* ps); void SLPrint(SL* ps); //扩容 void SLCheckCapacity(SL* ps);//头部插⼊删除 / 尾部插⼊删除 void SLPushBack(SL* ps, SLDataType x); void SLPopBack(SL* ps); void SLPushFront(SL* ps, SLDataType x); void SLPopFront(SL* ps);//指定位置之前插⼊/删除数据 void SLInsert(SL* ps, int pos, SLDataType x); void SLErase(SL* ps, int pos); int SLFind(SL* ps, SLDataType x);​ 1头文件的解释 i宏定义作为动态申请的初始值 #define INIT_CAPACITY 4 ii顺序表内部的数据统一替换为SLDatatype便于以后修改后复用。 typedef int SLDataType; iiiSeqList结构体就是顺序表重命名为SL便于使用。 typedef struct SeqList { SLDataType* a; int size; // 有效数据个数 int capacity; // 空间容量 }SL; iv其余为函数声明。 2手把手实现动态顺序表  a初始化 初始化首先形参结构体指针不为空并且将顺序表底层的数组置为空有效数据个数和容量大小都初始为0。 void SL_init(SL* ps) {assert(ps);ps-arr NULL;ps-capacity ps-size 0; } b销毁 在使用完毕后需要将顺序表销毁需要将动态申请的堆区空间释放掉有效数据个数和容量大小置为0。 void SLDestroy(SL* ps) {assert(ps);if (ps-arr ! NULL){free(ps-arr);}ps-capacity 0;ps-size 0; } c打印 在调试代码中需要用打印来帮助测试函数的功能 void SLPrint(SL* ps) {for (int i 0; i ps-size; i){printf(%d , ps-arr[i]);}printf(\n); } d扩容 确定顺序表的容量检查是否需要扩容如果需要进行将当前容量的二倍的扩容 如何检查         数据是一个一个插入的当有效数据个数等于容量的时候数据就满了每一次插入数据都进行一次容量是否足够的检查若满了就进行扩容。插入数据都需要用此函数先检查 第一次如何使用         在传入NULL时realloc函数的作用等同于malloc函数。 void SLCheckCapacity(SL* ps) {if (ps-capacity ps-size){size_t Newcapacity ps-capacity 0 ? 4 : ps-capacity * 2;SLtype* tem (SLtype*)realloc(ps-arr, Newcapacity * sizeof(SLtype));if (tem NULL){perror(realloc fail);exit(1);}ps-arr tem;ps-capacity Newcapacity;} } e头插与头删 头插与头删意思是在顺序表头部插入或者删除数据由于插入数据需要检查顺序表有效数据个数于是要调用SL_check_capacity函数并且由于多了一个数据要想将新数据插入必须将后面的原数据后移一位 头插 ​ void SLPushFront(SL* ps, SLDataType x) {assert(ps);//空间不够扩容SL_check_capacity(ps);//空间足够从头插入for (int i (int)ps-size ; i 0 ; i--){ps-arr[i] ps-arr[i - 1];}ps-arr[0] x;ps-size; }​         后移这一操作也可以用memove函数实现         (由于拷贝的两个空间有重叠部分谨慎使用memcpymemmove函数有分情况可以解决这一问题)         这样就省去了写for循环时考虑循环变量的范围以及边界是否取等以及重叠拷贝的拷贝顺序的确定的麻烦 ​ void SLPushFront(SL* ps, SLDataType x) {assert(ps);//空间不够扩容SL_check_capacity(ps);//空间足够从头插入memmove(ps-arr[1],ps-arr[0],ps-size*sizeof(SLDatatype));ps-arr[0] x;ps-size; }​ 头删         删除头部的一个数据需要将后面的数据向前移动一位 ​ void SLPopFront(SL* ps){assert(ps);assert(ps-size);for (int i 0; i ps-size - 1; i){ps-arr[i] ps-arr[i 1];}ps-size--; }​ 同样可以用memmove函数避免麻烦 void SLPopFront(SL* ps) {assert(ps);assert(ps-size);memmove(ps-arr[0],ps-arr[1],sizeof(SLDatatype)*(ps-size-1));ps-size--; } f尾插与尾删 尾插与尾删由于是在顺序表尾部插入或者删除数据所以不需要进行数据移动因此简单许多 尾插         只需要有效数据个数加1并将数据x存入即可 void SLPushBack(SL* ps, SLDataType x) {assert(ps);//空间不够扩容SL_check_capacity(ps);//空间足够直接插入ps-arr[ps-size] x;} 尾删         只需要有效数据个数减少1即可 void SLPopBack(SL* ps) {assert(ps);assert(ps-size);ps-size--; } g指定位置插入与删除 指定位置插入与删除         断言形参有效并且传入的位置在有效数据内部检查容量是否需要扩容同样可以用memmove函数省时省力。 指定位置插入 void SLInsert(SL* ps, int pos, SLDataType x) {assert(ps);assert(posi 0 posi ps-size);SL_check_capacity(ps);for (int i (int)ps-size - 1; i posi; i--){ps-arr[i 1] ps-arr[i];}ps-arr[posi] x;ps-size;} 删除指定位置 void SLErase(SL* ps, int pos) {assert(ps);assert(posi 0 posi ps-arr);for (int i (int)posi; i ps-size - 1; i){ps-arr[i] ps-arr[i 1];}ps-size--; }h顺序表查找某一元素 查找某一元素若找到返回顺序表数组下标找不到返回-1 int SLFind(SL* ps, SLDataType x) {assert(ps);for (int i 0; i ps-size; i){if (ps-arr[i] x){return i;}}return -1; }完~ 未经作者同意禁止转载

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

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

相关文章

马克杯网站开发北京本地服务信息网

1月18日,阿里云在京发布金融核心系统转型“红宝书”,并推出“金融级云原生工场”,通过新的建设理念和相应的全链路平台技术,以及先进的部署体系,支撑金融机构建设面向未来的新一代分布式智能化核心系统。 阿里云智能新…

如何做pdf电子书下载网站巨野菏泽网站建设

本文来自牛鹭学院学员:邓瑞杰字母处理string.capitalize()返回元字符串,且将字符串第一个字母转为大写,其它字母小写string.title()返回元字符串,且将字符串第一个字母转为大写,其它字母小写string.swapcase()用于对字…

网站建设备案需要什么wix网页制作

Salesforce使用了多种不同的数据库技术来支持其云端CRM(客户关系管理)服务。其中最显著的数据库技术是它自己的多租户数据库系统,称为"Salesforce数据库"或"Force.com数据库"。以下是关于Salesforce数据库的一些关键特点…

宁波市做网站wordpress短信登陆

确定vscode位置 在命令行中输入 which code得到文件地址 进入文件夹后可看到,这是个链接文件,不过无所谓,就用这个地址就行 设置Text Editor 打开setting选择右侧text editor 这里说明了如何进行设置 将自己的地址加进去就行 /usr/share…

订阅号可以建设微网站唐山网站建设七彩科技

归纳编程学习的感悟, 记录奋斗路上的点滴, 希望能帮到一样刻苦的你! 如有不足欢迎指正! 共同学习交流! 🌎欢迎各位→点赞 👍 收藏⭐ 留言​📝 你说那里有你的梦想,…

兰州企业网站建设多少钱网站做微信支付宝支付接口

来自:金钟路上小码工链接:https://www.cnblogs.com/danbing/p/7459224.html一、什么是负载均衡?互联网早期,业务流量比较小并且业务逻辑比较简单,单台服务器便可以满足基本的需求;但随着互联网的发展&#…

手机网站自适应屏幕在线详情页制作

废话不多说 , 直接上源码 import csv # 用于读写 CSV 文件 import json # 用于解析 JSON 数据 import requests # 用于发送 HTTP 请求 from lxml import etree # 用于解析 HTML 文档# 定义 DataScraper 类,实现数据抓取功能 class DataScraper:# 初始化函数def…

ie网站建设揭阳智能模板建站

文章目录 前言1. 安装Docker容器2. 拉取镜像3. 验证 前言 docker 离线安装onlyoffice,如在线安装可直接跳过导出导入镜像步骤,拉取后直接运行。 1. 安装Docker容器 下载文件 wget https://download.docker.com/linux/static/stable/x86_64/docker-19…

聊城门户网站临沂网站建设培训班

文章目录 一、常用的构建细节1、触发远程构建2、其他工程构建后触发3、定时构建4、轮询SCM(Poll SCM)二、Git hook自动触发构建(☆☆☆)1、安装插件2、Jenkins设置自动构建3、Gitlab配置webhook三、Jenkins的参数化构建1、项目创建分支,并推送到gitlab上2、在Jenkins添加字…

网站建设知名公司房产最新政策

国标GB28181视频平台EasyGBS是基于国标GB/T28181协议的行业内安防视频流媒体能力平台,可实现的视频功能包括:实时监控直播、录像、检索与回看、语音对讲、云存储、告警、平台级联等功能。国标GB28181视频监控平台部署简单、可拓展性强,支持将…

政协网站建设申请函中小企业网站建设报告

目录 一、云服务 1.1 云服务器类型 1.2 云服务案例 二、搭建云服务器的基本步骤 二、云服务的架构(架构) 2.1 层次架构 2.2 云平台统一管理功能 2.3 管理工具 一、云服务 1.1 云服务器类型 云服务(Cloud Services)是一种…

外贸网站开发推广花生壳可做网站吗

Arrays.asList():返回指定数组支持的固定大小列表 首先看下这个方法的源码注释,注意第一句,Returns a fixed-size list backed by the specified array., 意思就是:返回指定数组支持的固定大小列表 所以:…

专做脚本的网站公司宣传册设计样本

【OpenCV 例程200篇】73. 二维连续傅里叶变换 欢迎关注 『OpenCV 例程200篇』 系列,持续更新中 欢迎关注 『Python小白的OpenCV学习课』 系列,持续更新中 2.1 二维连续傅里叶变换 设 f(t,z)f(t,z)f(t,z) 是二维连续变量 t,zt, zt,z 的连续函数&#xff…

威联通nas 做网站wordpress页面模板目录文件下载

css设置字体阴影的方法:使用代码【text-shadow:3px 3px 3px #00f;】,【text-shadow】属性应用于阴影文本,语法为【text-shadow: h-shadow v-shadow blur color;】。本教程操作环境:windows10系统、css3版,该方法适用于…

找做网站找那个平台做惠州关键词排名优化

1、查看数据盘在没有分区和格式化数据盘之前,使用 “df –h”命令,是无法看到数据盘的,可以使用“fdisk -l”命令查看。友情提示:若您执行fdisk -l命令,发现没有 /dev/sdb 表明您的云服务无数据盘,那么您无…

公司门户网站设计南宁市网站建设价格

合理使用**copy**与**deepcopy**对于dict和list等数据结构的对象,直接赋值使用的是引用的方式。而有些情况下需要复制整个对象,这时可以使用copy包里的copy和deepcopy,这两个函数的不同之处在于后者是递归复制的。效率也不一样:&a…

建网站英语网站开发需要哪些基础技术

题目描述 Description给出一张n*n(n<100)的国际象棋棋盘&#xff0c;其中被删除了一些点&#xff0c;问可以使用多少1*2的多米诺骨牌进行掩盖。 输入描述 Input Description第一行为n&#xff0c;m&#xff08;表示有m个删除的格子&#xff09;第二行到m1行为x,y&#xff0c…

做网站如何写需求wordpress获得链接

主要知识点 babel读取代码的import语句算法&#xff1a;bfs遍历依赖图为浏览器定义一个require函数的polyfill算法&#xff1a;用记忆化搜索解决require函数的循环依赖问题 Quick Start GitHub&#xff1a;https://github.com/Hans774882968/mini-webpack npm install npm…

漯河市住房和城乡建设局网站html代码怎么写

Mybatis学习笔记10 高级映射及延迟加载_biubiubiu0706的博客-CSDN博客 缓存:cache 缓存的作用:通过减少IO的方式,来提高程序的执行效率 Mybatis的缓存:将select语句的查询结果放到缓存(内存)当中,下一次还是这条select语句的话,直接从缓存中取,不再查数据库.一方面是减少了I…