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

c 做精品课程网站做微信网站公司名称

c 做精品课程网站,做微信网站公司名称,wordpress淘宝客 采集器,我的世界做封面网站目录 顺序表的头插(SLPushFront) 此时#xff1a;我们有两个思路#xff08;数组移位#xff09; 顺序表的头删(学会思维的变换)(SLPopFront) 顺序表的尾插(SLPushBack) 有尾插就有尾删 既然头与尾部的插入与删除都有#xff0c;那必然少不了指定位置的插入删除 查找…目录 顺序表的头插(SLPushFront) 此时我们有两个思路数组移位 顺序表的头删(学会思维的变换)(SLPopFront) 顺序表的尾插(SLPushBack) 有尾插就有尾删 既然头与尾部的插入与删除都有那必然少不了指定位置的插入删除 查找目标值 指定位置插入(SLInsert) 指定位置删除(SLErase) 打印(顺序表的结尾之声) 书接上文 顺序表的头插(SLPushFront) 头插 对于头插我们需要先将数组头部的位置空余出来存放我们需要插入的数x 所以我们需要将数组中的数向后移一位 此时我们有两个思路数组移位 1、从下标为0开始向后置换此时会出现数值覆盖的问题我们需要另创建一个变量tmp存放后一个值以防覆盖之后寻找不到当tmp的下一个数组为NULL时怎么办了 这就要if语句判断或者使用while语句那有什么方法能将此简化呢这就来到第二个方法 2、我们从数组末尾进行移位这就防止了数值覆盖的问题还不需要使用到其余语句的创建 //头插 void SLPushFront(SL* ps, SLDataType x){ //记住SLDataType这里为我们为了方便typedef int SLDataTypeassert(ps);//断言一下防止指针为空SLCheckCapacity(ps);//开辟空间int i ps-size;for (; i 0; i--);//从后往前移位{ps-a[i] ps-a[i - 1];}ps-a[0] x;//此时a[0]就空出来存放xps-size;//不要忘记size需要 } 顺序表的头删(学会思维的变换)(SLPopFront) 对于头删我们需要删除下标为0的值然后将值向前移一位与头插类似只不过此时是从前往后移动; //头删 void SLPopFront(SL* ps) {assert(ps);assert(ps-size);//存放的值不能为NULL;for (int i 0; i ps-size-1; i) {ps-a[i] ps-a[i 1];}ps-size--; } 顺序表的尾插(SLPushBack) 当我们学会了头插顺序表的尾插相对我们来说简直轻而易举 尾插我们就要先判断是否还有空余位置就要利用SLCheckCapacity(SL* ps)是否需要扩容 此时ps-size的位置如图所示我们就可以直接将x的值赋给当前位置然后ps-size; //尾插 void SLPushBack(SL* ps, SLDataType x) {assert(ps);void SLCheckCapacity(SL * ps);ps-a[ps-size] x;//相当于ps-a[ps-size] x;//ps-size } 有尾插就有尾删 思考一下尾删我们将ps-size-1的位置删除将其置为NULL,ps-size--,就完成了尾删; 那我们换一个思路我们只将这个位置删除是否可以直接ps-size--呢因为当我们打印的时候只需打印[0,size)之间的数size这个位置需要打印吗当然不用啦如果我们需要尾插的时候呢我们可以直接将此位置覆盖掉 //尾删 void SLPopBack(SL* ps) {assert(ps);assert(ps-size);//进行尾删必须存在尾删的值ps-size--; } 既然头与尾部的插入与删除都有那必然少不了指定位置的插入删除 查找目标值 对于查找数组中的值时一般使用遍历查询 //查找 int SLFind(SL* ps, SLDataType x) {assert(ps);for (int i 0; i ps-size; i) {//对数组进行遍历if (ps-a[i] x) {return i;}}return -1;//循环结束没有找到返回-1 } 指定位置插入(SLInsert) 指定位置插入与头插相似需要将指定位置后的值向后移移位在进行插入 //注意这里的pos对应数组下标 //指定位置插入 void SLInsert(SL* ps, int pos, SLDataType x) {assert(ps);assert(pos 0 ps-size pos);//pos必须在含有值之间插入//插入数据空间够不够SLCheckCapacity(ps);//让pos及之后的数据整体往后挪动一位for (int i ps-size; i pos; i--){ps-a[i] ps-a[i - 1];//a[pos1] a[pos]与头插具有相似之处导致值的覆盖}ps-a[pos] x;//这里的pos对应数组下标如果不对应则按情况-ps-size; } 指定位置删除(SLErase) //删除指定位置的数据 void SLErase(SL* ps, int pos) {assert(ps);assert(pos 0 pos ps-size);//与头删类似for (int i pos; i ps-size - 1; i){ps-a[i] ps-a[i 1];}ps-size--; } 打印(顺序表的结尾之声) 这里我们要注意结构体访问成员的方式 ( . )  ( - ) C语言结构体—自定义类型—struct-CSDN博客 void SLPrint(SL s)//对于打印数组这里不再需要传地址而是传值 {for (int i 0; i s.size; i){//对于结构体的使用 .与-的不同printf(%d , s.a[i]);}printf(\n); } 以上我们完成了顺序表的实现下一节我们将实现(通讯录)顺序表 看到这里就点个赞走吧
http://www.hkea.cn/news/14317147/

相关文章:

  • 模板网站的好处如何做多语言网站
  • 网站怎么做关键词库深圳坪山新闻
  • 网上接手袋做是哪一个网站长春seo排名
  • 做海报素材的网站网站登录系统源码
  • 菏泽网站建设兼职辽宁沈阳网站建设
  • 加快网站访问速度陕西省泰烜建设集团有限公司网站
  • 公司网站要备案吗天津企业模板建站
  • 贵阳房地产网站建设如何介绍设计的网站模板
  • 南宁新技术产业建设开发总公司网站做微商去哪些社交网站
  • 内蒙古住房与城乡建设厅网站软件开发过程五个步骤
  • 在网站文字上做笔记网站建设公司 专题制作
  • 购物网站开发教学视频wordpress+路由器
  • dede s网站地图调文章网站建设需求调研计划表
  • 百度抓取网站频率怎么将网站关键词排名首页
  • 网站信息发布和内容建设自查报告番禺网站公司
  • 网站科技感颜色成都互联网公司十强
  • 旅游门户网站建设方案模板网站流量的重要性
  • html期末大作业个人网站制作巩义机械厂网站建设
  • 做网站的顺序易语言登录WordPress账号
  • 网站建设前期规划方案范文wordpress能做游戏
  • 网站备案流程教程宽屏wordpress主题
  • 南通科技网站建设龙岩e网站
  • 网站301了不知道在哪做的海口网站设计
  • 锡林浩特建设局网站wordpress mxtheme02
  • 好模版网站小程序制作单位
  • 北京网站关键词排名通付盾 网站建设公司
  • 天津 网站设计公司ps做 网站标准尺寸
  • 网站后台管理界面代码懂得都懂晚上正能量
  • 谷歌关键词搜索排名谷歌seo 外贸建站
  • 仿卢松松博客网站源码省建设厅官网查询