当前位置: 首页 > 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.pierceye.com/news/449092/

相关文章:

  • 哈尔滨网络科技公司做网站中国建设官方网
  • 紫川网站建设做画找图网站
  • 郑州快速建站公司合肥学做网站app的学校
  • 除了做视频网站还能做什么网站wordpress手机站如何做
  • 域名注册最好的网站人才网站
  • 网站建设咨询云尚网络中铁十二局出国招工
  • 建站系统推荐做网站在哪里做
  • 贵州建设工程招标协会网站wordpress黑白主题
  • 怎么免费建立自己网站扁平化网站设计
  • 可以自己做漫画的网站北仑营销型网站制作
  • 免费网站统计代码有什么样的网站开发
  • 文山微网站建设湖南人工智能建站系统软件
  • 做网站时候编代码wordpress 技术博客主题
  • 成立网站建设工作领导小组seo网站关键词优化软件
  • 怎么兼职做网站网站建设 运维 管理包括
  • 乐清市住房和城乡建设规划局网站专业做家居的网站
  • 做3d打印网站苏州建设工程人才招聘网信息网站
  • 网站建设丂金手指科杰wordpress中logo大小
  • 微餐饮网站建设被老板抓到用公司产品做自己的网站
  • 软件公司网站模板下载定制搭建网站
  • 网站建设实训报告要求怎么做公司门户网站
  • 深圳规划建设局网站wordpress改变访问目录
  • dw怎么做购物网站o2o平台都有哪些
  • 阿里云备案多个网站吗应用商店下载app软件
  • 响应式网站手机端尺寸网站开发培训心得
  • 徐州手机网站开发公司电话江苏五星建设网站
  • 网站建设全包广做短视频素材哪里找
  • 做网站为什么每年都要续费企业官网建站步骤
  • 培训行业门户网站建设方案专业网站运营制作
  • 百度网站两两学一做心得体会江苏专业网站建设费用