档案门户网站建设方案网页设计个人主页模板

pingmian/2025/10/14 1:07:42/文章来源:
档案门户网站建设方案,网页设计个人主页模板,湖南专业网站建设,营销方式有哪几种在计算机中主要有两种基本的存储结构用于存放线性表#xff1a;顺序存储结构和链式存储结构。本篇文章介绍采用顺序存储的结构实现线性表的存储。 顺序存储定义 线性表的顺序存储结构#xff0c;指的是一段地址连续的存储单元依次存储链性表的数据元素。 线性表的#xf…在计算机中主要有两种基本的存储结构用于存放线性表顺序存储结构和链式存储结构。本篇文章介绍采用顺序存储的结构实现线性表的存储。 顺序存储定义 线性表的顺序存储结构指的是一段地址连续的存储单元依次存储链性表的数据元素。 线性表的……的顺序存储示意图如下 就比如说在大学期间我们同宿舍的有一个同学人特别老实、热心我们时常会让他帮我们去图书馆占座他总是答应你想想我们一个宿舍连他共有九个人这其实明摆着是欺负人的事。他每次一吃完早饭就冲去图书馆挑一个好地儿把他的书包里的书一本一本地按座位放好若书包里的书不够他会把他的饭盒、水杯、水笔都用上长长一排九个座位硬是被他给占了后来有一次因占座的事情弄得差点都要打架。 顺序存储方式 线性表的顺序存储结构说白了和刚刚的例子一样就是在内存中找了块地通过占位的形式把一定的内存空间给占了然后把相同数据类型的数据元素依次存放在这块空地中。既然线性表的每个数据元素的类型都相同所以可以用C语言其他语言也相同的一维数组来实现顺序存储结构即把第一个数据元素存到数组下标为0的位置中接着把线性表相邻的元素存储在数组中相邻的位置。 线性表中我们估算这个线性表的最大存储容量建立一个数组数组的长度就是这个最大存储容量。随着数据的插入我们线性表的长度开始变大不过线性表的当前长度不能超过存储容量即数组的长度。 数据长度与线性表长度区别 注意哦这里有两个概念“数据的长度”和“线性表的长度”需要区分一下。 数组的长度是存放线性表的存储空间的长度在静态分配的一维数组中存储分配后这个量是一般不变的。但在动态分配的一维空间中是可以实现动态分配数组。 线性表的长度是线性表中数据元素的个数随着线性表插入和删除操作的进行这个量是变化的。 地址计算方法 由于我们数数都是从1开始数的线性表的定义也不能免俗起始也是1可C语言中的数组是从0开始的于是线性表的第i个元素是要存储在数组下标为i-1的位置即数据元素的序号和存放它的数组下标之间存在对应的关系。 用数组存储顺序表意味着要分配固定长度的数组空间由于线性表中可以进行插入和删除操作因此分配的数组空间要大于等于当前线性表的长度。 存储器中的每一个存储单元都有自己的编号这个编号称为地址。在前一个地址确定好之后那么后面的位置都是可以计算的。由于每个数据元素不管它是整形、实型还是字符型 它都是需要占用一定的存储单元空间的。假设占用的是c个存储单元那么线性表中第i1个数据元素的存储位置和第i个数据元素的存储位置满足下列关系LOC表示获得存储位置的函数。 LOC()LOC()c 所以对于第i个数据元素的存储位置可以由推算得出 LOC()LOC()(i-1)*c 地址计算公式可以随时算出线性表中任意位置的地址不管它是第一个还是最后一个都是相同的时间。那么我们对每个线性表位置的存入或者取出数据对于计算机来说都是相等的时间也就是一个常数因此用我们算法中学到的时间复杂度的概念来说它的存取时间性能为O(1)。具有这一特点的存储结构称为随机存取结构。 顺序表的代码实现分析 顺序表是用一段物理地址连续的存储单元依次存储数据元素的数据结构一般情况下采用数组存储。在数组上完成数据的增删改查。 顺序表一般可以分为 静态顺序表使用定长数组存储元素。动态顺序表使用动态开辟的数组存储。 //顺序表的静态存储 #define N 7 typedef int SLDataType; typedef struct SeqList {SLDataType array[N];//定长数组size_t size; //有效数据的个数 }SL;//顺序表的动态存储 typedef int SLDataType; typedef struct SeqList {SLDataType* array; //指向动态开辟的数组size_t size;//有效数据个数size_t capacity;//容量空间的大小 }SL; 其实在平时以及以后的工作环境中静态存储实践很少因为不知道需要多少内存空间N给大了不够用N给小了浪费。静态顺序表只适合用于确定知道需要存多少数据的场景。所以在现实中基本都是使用动态顺序表根据需要动态的分配空间大小所以下面我们实现动态顺序表。 顺序表的结构代码 typedef int SLDataType; //顺序表的动态存储 typedef struct SeqList {SLDataType* a; //指向动态开辟的数组size_t size;//有效数据个数size_t capacity;//容量空间的大小 }SL;顺序表的初始化 在这个顺序表中有一个a数组一个size是指有效数据的个数一个capacity是容量空间的大小。对于size而言size是有效数据的个数而看作下标的话那便是最后一个元素的下一个下标。 在进行初始化是要对数组以及顺序表结构体中的size以及capacity都进行初始化。 void SLInit(SL* psl) {psl-a NULL;psl-size 0;psl-capacity 0; } 顺序表的销毁 起初顺序表是一个空表但是经过了一系列的增删改查之后就会存储一些数据之后我们在销毁这个链表时这个链表就是有内容的所以在这里我们需要注意的是销毁时需要断言一下这个顺序表是否为空如果是空表的话那还销毁什么。其次在销毁时思路也很简单无非就是让这个顺序表的几个变量都变为0。 void SLDestory(SL* psl) {assert(psl);if (psl-a ! NULL){free(psl-a);psl-a NULL;psl-size 0;psl-capacity 0;} } 顺序表的遍历打印 遍历打印的思路极其类似于数组的打印利用下标即可。下标是从零开始的且size是有效数据的个数即最后一个数据的下一个下标所以这里的循环条件就是isize。 void SeqListPrint(SL* psl) {assert(psl);int i 0;for (i 0; i psl-size; i){printf(%d , psl-a[i]);}printf(\n); } 顺序表的扩容  因为在刚刚开始的时候我们初始化size以及capacity都为0所以为了防止每次扩容都是0所以利用三目操作符来进行判断如果这个capacity为0的话那么就直接扩容4字节其他的都是扩容它的两倍。 void SLCheckCapacity(SL* psl) {assert(psl);int Newcapacity psl-capacity 0 ? 4 : psl-capacity * 2;SLDataType* tmp (SLDataType*)realloc(psl-a, Newcapacity * sizeof(SLDataType));if (tmp NULL){perror(realloc fail\n);}psl-a tmp;psl-capacity Newcapacity; } 顺序表的尾插 在添加数据时不论是前插后插还是在指定位置插入我们都需要为其判断是否有足够的空间也就是判断是否需要扩容。扩容之后将数据插入顺序表中。 void SeqListPushBack(SL* psl, SLDataType x) {assert(psl);SLCheckCapacity(psl);psl-a[psl-size - 1] x;psl-size; } 这里注意一下在尾插之后需要将size。  顺序表的头插 顺序表的头插相比较尾插就较难一些因为需要将所有的数据都向后挪动一位。所以得再借助一个指针用来遍历。 void SeqListPushFront(SL* psl, SLDataType x) {assert(psl);SLCheckCapacity(psl);int end psl-size - 1;while (end 0){psl-a[end1] psl-a[end];end--;}psl-a[0] x;psl-size; } 顺序表的尾删 尾删还是比较容易的无非就是将size--但是这里还要断言一下确保size是大于零的。 void SeqListPopBack(SL* psl) {assert(psl);assert(psl-size 0);psl-size--; } 顺序表的头删 如果想要头删的那话就是将后面的元素给覆盖到前一个从前往后开始。 void SeqListPopFront(SL* psl) {assert(psl);assert(psl-size 0);int begin 1;while (begin psl-size - 1){psl-a[begin - 1] psl-a[begin];begin;}psl-size--; } 顺序表的查找 顺序表查找在这个顺序表中是否有这个数组。其实这个也就是遍历很简单利用下标。 int SeqListFind(SL* psl, SLDataType x) {int i 0;for (int i 0; i psl-size; i){if (psl-a[i] x){return i;}} } 顺序表在pos位置插入x的数 这里我们需要断言一下这个是否为有效位置。  void SeqListInsert(SL* psl, int pos, SLDataType x) {assert(psl);assert(pos 0 pos psl-size);SLCheckCapacity(psl);int end psl-size - 1;while (end pos){psl-a[end 1] psl-a[end];end--;}psl-a[pos] x;psl-size; } 顺序表删除pos位置上的值 void SeqListErase(SL* psl, int pos) {assert(psl);assert(pos 0 pos psl-size);int begin pos 1;while (begin psl-size - 1){psl-a[begin - 1] psl-a[begin];begin;}psl-size--; }

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

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

相关文章

迈步者seo海口seo整站

来源: 脑极体中国半导体行业在集体过冬,美国也未必没有紧迫感。前不久,美国半导体行业协会(SIA)和半导体研究公司(SRC)就联合发布了一份题为“半导体十年计划”的报告,希望美国政府能…

网站娱乐app网站开发网站开发的预算

文章目录 Ethernet的组成以太网和 Wi-Fi以太网应用场景以太网的发展历程以太网数据链路层CSMA/CD (载波侦听多路访问/冲突检测)推荐阅读 以太网(Ethernet)是一种局域网(LAN)技术,用于在局域网范围内传输数据。它是最常…

一个简单的网站怎么做的群晖wordpress不成功

若依微服务框架,富文本加入图片保存时出现JSON parse error: Unexpected character 一、问题二、解决1.修改网关配置2、对数据进行加密解密2.1安装插件2.2vue页面加密使用2.3后台解密存储 一、问题 若依微服务项目在使用富文本框的时候,富文本加入图片进…

沈阳智能模板建站购物网站模板html

有一个MSDN客户提问在WinForm中如何实现拖拽效果——比如在WinForm中有一个Button,我要实现的效果是拖拽这个Button到目标位置后生成一个该控件的副本。 其实这个操作主要分成三步走: 1)确定被拖拽的对象: 这里是Button&#xff0…

旅游网站界面设计h5网站不利于优化吗

WPF中自动增加行(动画)的TextBox 原文:WPF中自动增加行(动画)的TextBoxWPF中自动增加行(动画)的TextBox WPF中的Textbox控件是可以自动换行的,只要设置TextWrapping属性为”Wrap”即可&#xff…

.tech域名的网站wordpress无法编辑文章

\n‘ ‘ \n‘ ‘ \n‘ ‘ \n‘ ‘ \n‘ ‘ \n‘ ‘ \n‘ ‘ ‘ item.TITLE ‘\n‘ ‘ ‘ item.ZDRQ ‘\n‘ ‘ \n‘ ‘ \n‘ ‘ \n‘ ‘ \n‘ ‘ ‘ item.CDATE ‘\n‘ ‘ ‘ item.TJR ‘\n‘ ‘ \n‘ ‘ \n‘ ‘ ‘‘//消息的跳转页面$(".xiaoxi").click(fu…

不用下载的行情网站射击游戏网页版

DRAM,动态随机存取存储器,需要不断的刷新,才能保存数据。而且是行列地址复用的,许多都有页模式。 SRAM,静态的随机存取存储器,加电情况下,不需要刷新,数据不会丢失,而且…

网站seo诊断网站建设培训 通州

文章目录 一、功能简介二、软件设计三、实验现象联系作者 一、功能简介 本项目使用Proteus8仿真51单片机控制器,使共阴数码管,PCF8591 ADC模块、光敏传感器等。 主要功能: 系统运行后,数码管显示光传感器采集光照强度值&#xff…

电子商务网站建设原则小白测评做网站

1.1.问题分析2.设计算法3.编写程序4.对源程序进行编辑、编译和连接5.运行程序,分析结 6.编写程序文档第一章程 序 设 计 和C 语 言1.1.什么是计算机程序程序:一组计算机能识别和执行的指令。只要让计算机执行这个程序,计算机就会自动地、有条…

盐城网站优化推广工作室建立网站的模板

您可能已经知道,现在可以下载JDK 8 Early Access 。 这使Java开发人员可以尝试Java 8的一些新语言和运行时功能。这些功能之一是完全删除自Oracle自JDK 7发行以来就宣布的Permanent Generation(PermGen)空间。例如,自JDK 7起&…

网站建设轮播大图个人网站创建平台

1 案例1:安装部署Tomcat服务器 1.1 问题 本案例要求部署Tomcat服务器,具体要求如下: 安装部署JDK基础环境安装部署Tomcat服务器创建JSP测试页面 然后客户机访问此Web服务器验证效果: 使用火狐浏览器访问Tomcat服务器的8080端…

广东手机网站制作电话wordpress支持手机版吗

摘要: 小蚂蚁说: 随着深度学习的快速发展,以及在图像、语音领域取得的不错成果,基于深度学习的自然语言处理技术也日益受到人们的关注。计算机是怎么理解人类的语言的呢? 传统机器学习的应用,常常是利用上述…

深圳返利网站开发南宁市公共资源交易中心网

对于new出来的array sizeof()得到的只是指针大小 对于直接赋值的array sizeof()得到的就是整个数组的大小 memcpy的时候特别注意

优秀网站大全自媒体平台注册账号教程

Hadoop学习笔记—10.Shuffle过程那点事儿 一、回顾Reduce阶段三大步骤 在第四篇博文《初识MapReduce》中,我们认识了MapReduce的八大步骤,其中在Reduce阶段总共三个步骤,如下图所示: 其中,Step2.1就是一个Shuffle操作&…

企业做网站etp和源程序wordpress采集微信文章

要了解七类网线如何使用?需要掌握这四个问题:1、什么是七类网线?2、七类网线与六类网线有什么区别?3、七类网线用什么水晶头?如何制作7类网线水晶头?4、7类网线的应用场景?带着这四个问题&#…

阿里云网站建设部署与发布试题答案asp.net 网站开发项目

一、市场上的NRF24L01模块有三种 二、模块的引脚接口 标准的4线SPI接口 三、寄存器操作命令以及寄存器地址 四、两个NRF24L01模块能够成功通信需要满足的条件 五、两个NRF24L01模块通信连接示意图

网站开发项目的部署太原做网站费用

Java集合Java集合框架:是一种工具类,就像是一个容器可以存储任意数量的具有共同属性的对象。Java集合中成员很丰富,常用的集合有ArrayList,HashMap,HashSet等。线程安全的有Vector,HashTable。线程不安全的…

多语言网站建设 技术企业网站建设费用属于什么科目

目录 一、环境说明 二、部署Hbase 2.1 解压Hbase 2.2 移动解压包 2.3 修改 hbase-env.sh文件 2.4 修改环境变量 2.5 修改hbase-site.xml文件 2.6 修改regionservers 文件 2.7 分发hbase 2.7.1 分发hbase包 2.7.2 分发环境配置 2.8 启动hbase服务 2.8.1 环境生效 …

怎样做网站 网页怎么进行网站维护

漏洞介绍: 漏洞名称: Apache Tomcat反序列化漏洞影响范围: Apache Tomcat服务器中使用了自带session同步功能的配置,且没有使用Encrypt Interceptor加密拦截器的情况下。漏洞描述: Apache Tomcat是一个基于Java的Web应用软件容器,用于运行servlet和JSP Web应用。当Tomc…

p2p网站建设要点开源php建站系统

文章目录目录1.什么是用户行为数据?1.1用户行为分类2.用户行为数据如何使用?2.1 用户活跃度和物品流行度的分布2.2 用户活跃度和物品流行度的关系2.3 协同过滤算法3.实验设计和算法评测4.基于邻域的的推荐算法4.1 基于用户的协同过滤算法4.2 基于物品的协…