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

网站网域名查询网站 设计 工具

网站网域名查询,网站 设计 工具,外贸公司怎么运作,惠州seo建站一#xff0c;概念及结构 顺序表是用一段物理地址连续的存储单元依次存储数据元素的线性结构#xff0c;一般情况下采用数组存储#xff1b; 在数组上完成数据的增删查改。 1#xff0c; 静态顺序表#xff1a;使用定长数组存储元素。 2.#xff0c;动态顺序表#xff1… 一概念及结构 顺序表是用一段物理地址连续的存储单元依次存储数据元素的线性结构一般情况下采用数组存储 在数组上完成数据的增删查改。 1 静态顺序表使用定长数组存储元素。 2.动态顺序表使用动态开辟的数组存储。 二接口实现 静态顺序表只适用于确定知道需要存多少数据的场景 静态顺序表的定长数组导致N定大了空间开多了浪费开少了不够用 所以现实中基本都是使用动态顺序表根据需要动态的分配空间大小所以下面我们实现动态顺序表 1顺序表的创建动态 //动态顺序表 typedef int SLDataType;typedef struct SqList {SLDataType* a;int size; //存储有效数据个数int capacity; //容量空间大小 }SL; 这里我们将数据类型暂时定为int类型typedef为SLDataType便于我们后续对顺序表数据类型的修改 定义属性表为SL*的指针a有效数据个数size现有容量capacity; 2接口函数 // 顺序表初始化 void SLInit(SL* ps); // 顺序表销毁 void SLDestroy(SL* ps); // 检查空间如果满了进行增容 void SLChenkCapacity(SL* ps); //顺序表尾插 void SLPushBack(SL* ps,SLDataType x); //顺序表尾删 void SLPopBack(SL* ps); //顺序表头插 void SLPushFront(SL* ps, SLDataType x); //顺序表头删 void SLPopFront(SL* ps); //顺序表打印 void SLPrint(SL* ps); // 顺序表查找 int SeqListFind(SL* ps, SLDataType x); // 顺序表在pos位置插入x void SLInsert(SL*ps, int pos, SLDataType x); // 顺序表在pos位置删除x void SLErase(SL*ps, int pos); 3初始化  //定义SL s1;//初始化SLInit(s1); // 顺序表初始化 void SLInit(SL* ps) {assert(ps);ps-a (SLDataType*)malloc(sizeof(SLDataType) * 4);if (ps-a NULL){perror(malloc);exit(-1);}ps-size 0;ps-capacity 4; } 首先要进行断言ps不能为空如果ps为空则下面对ps解引用就会报错 刚开始先给 a 申请4个SLDataType大小的空间这个自己可以任意修改然后对size和capacity进行赋值 4销毁 // 顺序表销毁 void SLDestroy(SL*ps) {assert(ps);free(ps-a);ps-a NULL;ps-size ps-capacity 0; } 然后就是销毁顺序表直接用 free 释放掉 a 即可再置为空指针再重置 size 和 capacity 5判断是否增容 // 检查空间如果满了进行增容 void SLChenkCapacity(SL* ps) {assert(ps);if (ps-size ps-capacity){ps-a (SLDataType*)realloc(ps-a, ps-capacity * 2 * (sizeof(SLDataType)));if (ps-a NULL){perror(realloc);exit(-1);}ps-capacity ps-capacity * 2;} } 像后面如果进行尾插头插的话就需要检查空间是否需要增容了也很好判断当size等于capacity时就需要增容了我们这里是选择直接扩容一倍 然后再更新一下capacity的值就行了 6尾插 //顺序表尾插 void SLPushBack(SL* ps, SLDataType x) {assert(ps);//检查空间SLChenkCapacity(ps);ps-a[ps-size] x;ps-size; } 首先判断是否需要增容此时size的值就是末尾的数的下标加一 直接对其下标进行赋值再让size加一 7尾删 //顺序表尾删 void SLPopBack(SL* ps) {assert(ps);//温柔的检查//if (ps-size 0)// return;//暴力检查assert(ps-size 0);ps-size--; } 这里有两种检查方式推荐暴力检查法要删除值size的值必须大于0 然后直接令size减一即可访问不到即为删除 8头插 //顺序表头插 void SLPushFront(SL* ps, SLDataType x) {assert(ps);SLChenkCapacity(ps);int end ps-size-1;while (end 0){ps-a[end 1] ps-a[end];end--; }ps-a[0] x;ps-size; } 还是先判断是否需要增容然后先将整体的值往后推一位 给头赋值令size加一 9头删 //顺序表头删 void SLPopFront(SL* ps) {assert(ps);assert(ps-size 0);int i 0;while (i ps-size - 1){ps-a[i] ps-a[i 1];i;}ps-size--; } 要删除数据首先数据不能为空要进行断言一下 然后将整体往前推一位再令size减一 10打印 //顺序表打印 void SLPrint(SL* ps) {assert(ps);int i 0;for (i 0; i ps-size; i){printf(%d , ps-a[i]);}printf(\n); } size是数据个数其减一就是末尾数据的下标然后进行遍历打印即可 11查找 // 顺序表查找 int SeqListFind(SL* ps, SLDataType x) {assert(ps);int i 0;for (i 0; i ps-size; i){if (ps-a[i] x)return i;}return -1; } 直接遍历数组进行查找然后返回下标没有则返回-1 12指定位置进行插入 // 顺序表在pos位置插入x void SLInsert(SL*ps, int pos, SLDataType x) {assert(ps);assert(pos0 pos ps-size);SLChenkCapacity(ps);int end ps-size - 1;while (end pos){ps-a[end 1] ps-a[end];end--;}ps-a[pos] x;ps-size; } 首先判断pos要大于等于0且小于等于size是否需要增容 然后从pos数组的值往后推一位再对其位置重新赋值再令size 13指定位置进行删除 // 顺序表在pos位置删除x void SLErase(SL*ps, int pos) {assert(ps);assert(pos 0 pos ps-size);int i pos;while (i ps-size - 1){ps-a[i] ps-a[i 1];i;}ps-size--; } 首先还是要判断pos的值大于等于0小于size因为数组下标为size是没有值的所以pos不能等于size 然后在pos处往前推一位令size-- 三源码 1头文件 SqList.h #pragma once #includestdio.h #includestdlib.h #includeassert.h//动态顺序表 typedef int SLDataType;typedef struct SqList {SLDataType* a;int size; //存储有效数据个数int capacity; //容量空间大小 }SL;// 顺序表初始化 void SLInit(SL* ps); // 顺序表销毁 void SLDestroy(SL* ps); // 检查空间如果满了进行增容 void SLChenkCapacity(SL* ps); //顺序表尾插 void SLPushBack(SL* ps,SLDataType x); //顺序表尾删 void SLPopBack(SL* ps); //顺序表头插 void SLPushFront(SL* ps, SLDataType x); //顺序表头删 void SLPopFront(SL* ps); //顺序表打印 void SLPrint(SL* ps); // 顺序表查找 int SeqListFind(SL* ps, SLDataType x); // 顺序表在pos位置插入x void SLInsert(SL*ps, int pos, SLDataType x); // 顺序表在pos位置删除x void SLErase(SL*ps, int pos); 2执行文件 SqList.c #define _CRT_SECURE_NO_WARNINGS 1 #includeSqList.h// 顺序表初始化 void SLInit(SL* ps) {assert(ps);ps-a (SLDataType*)malloc(sizeof(SLDataType) * 4);if (ps-a NULL){perror(malloc);exit(-1);}ps-size 0;ps-capacity 4; }// 顺序表销毁 void SLDestroy(SL*ps) {assert(ps);free(ps-a);ps-a NULL;ps-size ps-capacity 0; }// 检查空间如果满了进行增容 void SLChenkCapacity(SL* ps) {assert(ps);if (ps-size ps-capacity){ps-a (SLDataType*)realloc(ps-a, ps-capacity * 2 * (sizeof(SLDataType)));if (ps-a NULL){perror(realloc);exit(-1);}ps-capacity ps-capacity * 2;} }//顺序表尾插 void SLPushBack(SL* ps, SLDataType x) {assert(ps);//检查空间SLChenkCapacity(ps);ps-a[ps-size] x;ps-size; }//顺序表尾删 void SLPopBack(SL* ps) {assert(ps);//温柔的检查//if (ps-size 0)// return;//暴力检查assert(ps-size 0);ps-size--; }//顺序表头插 void SLPushFront(SL* ps, SLDataType x) {assert(ps);SLChenkCapacity(ps);int end ps-size-1;while (end 0){ps-a[end 1] ps-a[end];end--; }ps-a[0] x;ps-size; }//顺序表头删 void SLPopFront(SL* ps) {assert(ps);assert(ps-size 0);int i 0;while (i ps-size - 1){ps-a[i] ps-a[i 1];i;}ps-size--; }//顺序表打印 void SLPrint(SL* ps) {assert(ps);int i 0;for (i 0; i ps-size; i){printf(%d , ps-a[i]);}printf(\n); }// 顺序表查找 int SeqListFind(SL* ps, SLDataType x) {assert(ps);int i 0;for (i 0; i ps-size; i){if (ps-a[i] x)return i;}return -1; }// 顺序表在pos位置插入x void SLInsert(SL*ps, int pos, SLDataType x) {assert(ps);assert(pos0 pos ps-size);SLChenkCapacity(ps);int end ps-size - 1;while (end pos){ps-a[end 1] ps-a[end];end--;}ps-a[pos] x;ps-size; }// 顺序表在pos位置删除x void SLErase(SL*ps, int pos) {assert(ps);assert(pos 0 pos ps-size);int i pos;while (i ps-size - 1){ps-a[i] ps-a[i 1];i;}ps-size--; } 如有不足之处欢迎来补充交流 完结。。。
http://www.dnsts.com.cn/news/121042.html

相关文章:

  • 郑州%公司 网站建设广州网站建设比较好的公司
  • 营销网站试用外贸营销网站推广
  • 大同网站建设熊掌号怎么下载河北人社app
  • 宏升温岭网站建设工作室起名大全免费取名
  • 济南营销型网站建设哪家好产品介绍网站模板
  • 网站怎么开发商场设计平面布置图
  • 网站建设的费用和预算跨境电商入门基础知识
  • 电子商务网站开发书沈阳制作公司网站和app
  • 上海做推广网站后端网站开发
  • 网站建设阶段html源码网站建设中
  • 免费的网站认证四川成都网站制作公司
  • 网站开发课程设计建议wordpress来访检测
  • 做网站都用到哪些软件南昌做网站的公司有哪些
  • 站长seo查询工具wordpress常规地址改错了怎么办
  • 免费的建设网站软件笔记本做网站服务器
  • 网站开发需要哪些人怎么分工商务网站建设课程
  • 免费微信微网站模板下载个人养老金制度最新消息
  • 购销网站建设视频百度云徐州模板建站系统
  • 建设部网站1667号下载做网站滨州市
  • 网站开发程序员岗位职责酒店网站建设与设计公司
  • 网站代码需要注意什么网站 图标 素材
  • 东莞品牌型网站建设企业网站建设论文模板
  • 广州做啊里巴巴网站多少钱wordpress centos
  • 二道网站建设做网站的公司苏州
  • 帝国网站管理系统安装连接不上数据库网络营销推广方案怎么写
  • 最好的wordpress 网站制作微网站多少钱
  • 网站建设 电商设计网站名字
  • wordpress更改网站信息网站运营培训机构
  • 哪些网站可以做免费广告推广wordpress 大网站
  • 企业网站管理系统c平面设计公司哪家好