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

厦门网站建设方案策划网页游戏平台代理加盟

厦门网站建设方案策划,网页游戏平台代理加盟,手做网站,搜狗推广文章目录 前言1.准备工作2.代码的实现2.1.顺序表的创建、销毁和打印2.2.顺序表的扩容、头插\删、尾插\删2.2.1.扩容2.2.2.尾插2.2.3.头插2.2.3.尾删2.2.4.头删 2.3.指定位置之前插入/删除数据/查找数据2.3.1.指定位置之前插入数据2.3.2.指定位置之前删除数据2.3.3.查找特定数据… 文章目录 前言1.准备工作2.代码的实现2.1.顺序表的创建、销毁和打印2.2.顺序表的扩容、头插\删、尾插\删2.2.1.扩容2.2.2.尾插2.2.3.头插2.2.3.尾删2.2.4.头删 2.3.指定位置之前插入/删除数据/查找数据2.3.1.指定位置之前插入数据2.3.2.指定位置之前删除数据2.3.3.查找特定数据 总结 前言 上一篇我们认识到了顺序表以及实现顺序表操作的相关函数下面我们来一一实现。 1.准备工作 示例 打开vs2022创建三个文件 其中SeqList.h头文件是用来记录的相当于一本书的目录 SeqList.c文件是用来实现函数的相当于各种公式 test.c是用来测试的。 记住一个好的习惯是写完一个函数要测试一个函数。 2.代码的实现 2.1.顺序表的创建、销毁和打印 //初始化 void SLInit(SL* ps) {ps-arr NULL;ps-size ps-capacity 0; }//销毁 void SLDestroy(SL* ps) {if (ps-arr){free(ps-arr);}ps-capacity ps-size 0; } //打印 void SLPrint(SL* ps) {for (int i 0; i ps-size; i){printf(%d , ps-arr[i]);}printf(\n); }这个代码较为简单。 思考为什么向函数中传递形参时是用指针如果不是指针会发生什么大家可以试试。 2.2.顺序表的扩容、头插\删、尾插\删 2.2.1.扩容 //扩容 void SLCheckCapacity(SL* ps) {if (ps-capacity ps-size){int newCapacity ps-capacity 0 ? 4 : 2 * ps-capacity;SeqDataType* tmp (SeqDataType*)realloc(ps-arr,sizeof(SeqDataType) * newCapacity);if (tmp NULL){perror(realloc fail!);exit(1);}ps-capacity newCapacity;ps-arr tmp;} }2.2.2.尾插 void SLPushBack(SL* ps, SeqDataType x) {assert(ps);//要判断arr空间是否充足SLCheckCapacity(ps);ps-arr[ps-size] x;}2.2.3.头插 void SLPushFront(SL* ps, SeqDataType x) {assert(ps);SLCheckCapacity(ps);//要将原来数组的每一个数移动到前面for (int i ps-size; i0; i--){ps-arr[i] ps-arr[i - 1];//arr[1]arr[0]}ps-arr[0] x;ps-size; }2.2.3.尾删 尾删可能是最简单的但是可能第一次想象不到只需要size–即可在输出的结果上一看便是少了一个并且也是最后一个。 void SLPopBack(SL* ps) {assert(ps);assert(ps-arr);//删着删着最后要是顺序表为空要报警ps-size--; }2.2.4.头删 void SLPopFront(SL* ps) {assert(ps ps-arr);//删除第一个数字后将后面的数字移动到前面for (int i0; ips-size-1; i){ps-arr[i] ps-arr[i1];//arr[size-2]arr[size-1]}ps-size--; }2.3.指定位置之前插入/删除数据/查找数据 2.3.1.指定位置之前插入数据 void SLInsert(SL* ps, int pos, SeqDataType x) {assert(ps ps-arr);assert(pos 0 pos ps-size);SLCheckCapacity(ps);for (int i ps-size; ipos; i--){ps-arr[i] ps-arr[i-1];}ps-arr[pos] x;ps-size; }assert(pos 0 pos ps-size);为什么不是呢是因为咱们得目的是让数据插入到指定位置之前如果传入的位置是ps-size的话最后的代码将会是在ps-size之后插入的不符合需要的功能所以是 2.3.2.指定位置之前删除数据 void SLErase(SL* ps, int pos) {assert(ps-arr ps);assert(pos 0 pos ps-size);for (int i 0; i pos; i){ps-arr[i] ps-arr[i 1];}ps-size--; }2.3.3.查找特定数据 int SLFind(SL* ps, SeqDataType x) {for (int i 0; i ps-size; i)if (ps-arr[i] x)return i;return -1; }总结 上面便是顺序表的常见的操作大家可以根据代码自己理解并掌握。
http://www.zqtcl.cn/news/449092/

相关文章:

  • 类似于拼多多的网站怎么做资料下载网站建设
  • 做商城网站哪里网站官网建设的价格
  • 网站怎么做用户体验山东富国建设投资有限公司网站
  • app ui模板网站首页改版影响优化
  • 周村网站制作哪家好网站设计基本要素
  • 网站制作与维护费用wordpress文章页不显示侧边
  • 嘉兴网站建设正规公司做室内设计人喜欢的网站
  • 入侵dedecms网站管理员密码百度注册域名免费建站
  • 找晚上做的工作去哪个网站企业开发软件公司拓展方案
  • 济宁建站公司wordpress博客入门
  • 做外贸需要网站wordpress app 打包
  • 免费网站站长查询丽水微信网站建设公司
  • 广州品牌网站建设先做网站 先备案
  • jsp系统网站建设带源代码梧州网页设计
  • 二手书籍交易网站开发方式关键词seo排名优化如何
  • 陕西西安潍坊网站seo外包
  • 计算机专业网站开发开题报告网站推广营销怎么做
  • 比较大的做网站的公司电影网站盗链怎么做
  • 江苏响应式网站建设哪里有台州网站制作方案
  • 深圳设计网站有哪些展览展会策划公司
  • 微信生活门户网站源码河北建设厅网站初始密码
  • 企业如何做网站推广成都外贸网站建设
  • 网页设计 网站建设 哪个好佛山网站建设推广服务
  • 东莞网站建设技术支持产品推广怎么写
  • 银川app购物网站制作公司网站建设怎样提升形象与品牌价值
  • 中山城市建设集团网站信誉好的邯郸网站建设
  • 做网站很赚钱吗贵阳网站建设费用
  • 设计网站的关键点用ps做招生网站
  • 制作网站公司服务器租赁一年的费用网页动画是如何制作出来的
  • 佛山网站优化有莱芜房产网新房