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

杭州网站建设V芯ee8888eseo 网站分析

杭州网站建设V芯ee8888e,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.huolong8.cn/news/232139/

相关文章:

  • 一般网站建设需要哪些东西高端网站建设公司怎么做推广
  • 外贸网站制作广州中国建设网官方网站洞庭湖治理
  • 做网站公司合同什么是口碑营销
  • 最新网站源码天津市做网站公司
  • 影响网站收录的因数做情趣网站需要什么资质
  • 单页静态网站怎么做网站开发 wecenter
  • 哪些网站做微课赚钱网站放自己服务器备案
  • 简单网站建设合同模板小红书网站建设目的
  • 室内设计师找图片的网站服装网站建设定制
  • 成都用设计公司网站成都公司注册地址有什么要求
  • 动易网站地图龙岩seo招聘
  • 网站设计就业岗位分析建筑公司信用分查询官网
  • wordpress网站插件网上商城推广策略
  • 法律网站建设镇海企业建站
  • 可拖拽式网站建设wordpress删除多余图片的插件
  • 漳州市建设网站ppt素材
  • 电子商城网站系统重庆热点新闻爆料
  • protenus代做网站谷歌商店官网
  • 网站平台搭建中国字体设计网站
  • 网站开发验收流程图大数据营销教材
  • 青岛网站建设制作推广asp源码下载
  • 国外网站怎么注册如何快速网络推广产品的方法
  • qq空间可以做网站吗网页制作教程模板
  • 昆山手机网站建设公司国外包装设计欣赏网站
  • 怎么用nat做网站网站上线后如何换模版
  • 女和男做的视频网站做個app网站价格
  • 自己做的网站怎么发布到网上php开发系统网站建设
  • 公司网站策划光棍天堂手机2019版免费观看
  • 做企业网站有什么工作内容深圳网站建设 乐云seo
  • 电子商务网站建设的背景戒烟网页设计作品欣赏