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

中山火炬开发区建设局网站兰州网站建设流程

中山火炬开发区建设局网站,兰州网站建设流程,中国十大网络公司排行榜,旅游电子商务网站的建设包括哪些步骤?网站建设中有哪些常用技术?目录 一、顺序表的概念 二、顺序表的分类 1.静态顺序表 2.动态顺序表 3.顺序表的增删改查 总结 一、顺序表的概念 顺序表是一段物理地址连续的村塾单元依次存储数据元素的线性结构#xff0c;一般情况下使用数组存储#xff0c;在数组上完成数据的增删改查。 二、顺…目录 一、顺序表的概念 二、顺序表的分类 1.静态顺序表  2.动态顺序表 3.顺序表的增删改查 总结 一、顺序表的概念 顺序表是一段物理地址连续的村塾单元依次存储数据元素的线性结构一般情况下使用数组存储在数组上完成数据的增删改查。 二、顺序表的分类 1.静态顺序表    使用定长数组存储元素 #define N 7typedef int SLDataType;typedef struct SeqList{SLDataType array[N]; //定长数组size_t size ; //有效数据的个数 }SeqList; 静态顺序表只适用于确定需要多少数据的情况N大了空间浪费N小了不够用所以一般用动态顺序表按需分配空间。 2.动态顺序表 使用动态开辟的数组存储 //顺序表的动态存储 typedef struct SeqList {SLDataType * array; //指向动态开辟的数组size_t size; //有效的数据个数sieze_t capacity; //容量空间的大小 }SeqList; 3.顺序表的增删改查 顺序表的初始化顺序表为一个结构体里面有3个参数指向数组的指针顺序表中的有效数字个数顺序表的大小初始化的时候全部置空 //顺序表的初始化 void SLInit(SL * ps) {assert(ps);ps-a NULL;ps-size 0;ps-capacity 0; } 尾插首先在尾部插入数据先判断顺序表中的大小是否能插入如果不能需要扩容如果可以插入则要找到尾的位置然后把数据放入放入的时候根据size找下标放入a中。ps-a[ps-size];此时size void SLCheckCapacity(SL * ps) {assert(ps);//如果容量满了if(ps-size ps-capacity){//如果是第一次开辟空间 给4个字节 // 后面开辟扩容到二倍int newCapacity ps-capacity 0 ?4: ps-capacity * 2;//扩容的地址 realloc 形参为第一次开辟的地址和要扩容的大小 //要扩容的单位 字节 字节个数扩容几个 * 类型SLDataType * tmp (SLDataType * ) realloc(ps-a, newCapcity * sizeof(SLDataType));//如果开失败if(tmp NULL){perror(realloc fail);exit(-1);}//开成功 地址给a realloc可能为原地也可能为异地 相当于一次原地扩容ps-a tmp;// 容量大小改变ps-capacity newCapacity; }void SLPushBack(SL * ps,SLDataType x) {assert(ps);//检查容量SLCheckCapacity(ps);ps-a[ps-size] x; //x要放入a数组中根据现在的数据个数(即数组的最后一个)找下标赋值插入ps-size; } 尾删先判断顺序表是否删空了如果空了返回。如果不空a数组中的尾部位置数置0size--. void SLPopBack(SL * ps) {assert(ps);assert(ps-size 0);ps-a[ps-size-1] 0; //注意下标的位置size是有效数据个数size-1是最后一个数的位置ps-size--; } 头插插入之前需要先判断能否插入使用checkCapacity检查如果可以插入头插需要把后面的数字往后挪往后挪有两种方式从前往后从后往前此时需要从后往前否则会覆盖掉后一个数字挪动结束后第一个位置插入插入之后size //头插 void SLPushFront(SL * ps,SLDataType) {assert(ps);SLCheckCapacity(ps);//挪动数据int end ps-size-1;while(end0){ps-a[end1] ps-a[end];end--;}ps-a[0] x;ps-size; } 头删先判断是否为空的顺序表然后删除第一个后面的数据往前挪动挪动的时候从前往后挪不会覆盖删除结束之后size-- //头删 void SLPopFront(SL * ps) {assert(ps-size 0)int begin 1; //注意这里begin设置为1 while(beginps-size){ps-a[begin-1] ps-a[begin]; //覆盖前一个begin;}ps-size--; } 查找遍历顺序表 根据数据查找位置找到了就返回数据的下标 int Find(SL * ps, SLDataType x) {assert(ps);for(int i 0;ips-size;i){if(ps-a[size] x){return i;}}//没找到return -1; } 在pos位置插入x先判断pos位置的合法性是否在这个顺序表的范围里然后判断是否能插入如果不可以需要扩容如果可以插入pos位置之后的先往后挪动endpos,然后pos位置插入数据 void SLInsert(SL * ps,SLDataType x) {assert(ps);//判断pos的合法性 在这个顺序表中assert(pos0);assert(posps-size);//判断是否要扩容SLCheckCapacity(ps);int end ps-size - 1;//pos位置之后的挪动 往后挪while(endpos){ps-a[end1] ps-a[end];end--;}ps-a[pos] x;ps-size; } 在pos位置删除x 先判断pos的合法性判断顺序表是否为空如果可以删除pos位置之后的往前挪动size-- void SLErase(SL * ps,int pos) {assert(ps);assert(pos0);assert(posps-size);assert(ps-size 0);//挪动数据覆盖int begin pos1;while(beginps-size){ps-a[begin-1] ps-a[begin];begin;}ps-size--; 顺序表的打印遍历打印即可打印数组中的内容 void SLPrint(SL * ps) {assert(ps;for(int i 0;ips-size;i){printf(%d,ps-a[i];);} } 顺序表的销毁将顺序表中的数组内容置空size和capacity均置空 void SLDestroy(SL * ps) {assert(ps);if(ps-a){free(ps-a);ps-a NULL;ps-size ps-capacity 0;}} 总结 本文主要介绍了顺序表的结构以及对顺序表的操作增删改查等。如有错误请指正。
http://www.hkea.cn/news/14429766/

相关文章:

  • 中国有哪些网站青年人爱看的网站
  • 上海网站建设专业公司哪家好黄页推广服务
  • 怎么做网站结构拓扑图保山市建设厅网站
  • 建网站做优化手机怎么网站模板
  • 跨境电子商务网站建设寻找设计师的网站
  • 小型电子商务企业网站建设建网站多少钱一个月
  • 做网站能致富吗用php做购物网站案例
  • 做视频投稿赚钱的网站短视频软件
  • 多语言站点 wordpress建立什么填词语
  • php婚庆网站源码零用贷网站如何做
  • 单页销售网站制作制作免费的网络电视app
  • 宠物网站设计模板网站视频插件怎么做
  • wordpress炫酷站电子商务网站建设的开发流程
  • 白色网站源码网站后台 全局配置
  • 有没有做任务的网站wordpress企业建站视频
  • 做it行业招标网站有哪些wordpress自适应手机
  • 西宁做网站的好公司wordpress建站文本教程
  • 天网网站建设如何在自己网站上做支付宝吗
  • 建设银行 杭州市公积金管理中心网站空间设计师网站
  • h5自适应企业网站源码视频营销案例
  • 网站布局方案建筑工程网络软件
  • 汕头教育的网站建设大气门户网站
  • 佛山做app网站设计院加盟
  • 创想商务网站建设多语言商城源码
  • 长春建站模板生产管理软件app
  • 亦庄网站建设改变网站的域名
  • 正能量网站地址污的中国建筑工程个人信息网
  • 做的网站需要什么技术支持wordpress amp插件
  • 如何提高网站的搜索wordpress查询码
  • 用什么网站做框架图php网站建设用什么软件