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

怎么建设自己的购物网站家装设计师自学攻略

怎么建设自己的购物网站,家装设计师自学攻略,郑州市新闻最新消息,logo设计竞标网站链表是线性表的一种#xff0c;是⼀种物理存储结构上⾮连续、⾮顺序的存储结构#xff0c;数据元素的逻辑顺序是通过链表中的指针链接次序实现的。 和顺序表差不多#xff0c;用结构体定义一个节点#xff0c;包括存储的数据和下一个节点的地址。 这里我们写几个接口是⼀种物理存储结构上⾮连续、⾮顺序的存储结构数据元素的逻辑顺序是通过链表中的指针链接次序实现的。 和顺序表差不多用结构体定义一个节点包括存储的数据和下一个节点的地址。 这里我们写几个接口尾插头插尾删头删查找元素指定位置插入指定位置删除销毁。 SList.h #define _CRT_SECURE_NO_WARNINGS 1#includestdio.h #includestdlib.h #includeassert.htypedef int SList_Datatype;typedef struct SList_Node {SList_Datatype Data;struct SList_Node* Next; }STL_Node;void SLTPrint(STL_Node* phead);//尾插 void SLTPushBack(STL_Node** pphead, SList_Datatype x); //头插 void SLTPushFront(STL_Node** pphead, SList_Datatype x); //尾删 void SLTPopBack(STL_Node** pphead); //头删 void SLTPopFront(STL_Node** pphead);//查找 STL_Node* SLTFind(STL_Node* phead, SList_Datatype x);//在指定位置之前插入数据 void SLTInsert(STL_Node** pphead, STL_Node* pos, SList_Datatype x); //在指定位置之后插入数据 void SLTInsertAfter(STL_Node* pos, SList_Datatype x);//删除pos节点 void SLTErase(STL_Node** pphead, STL_Node* pos); //删除pos之后的节点 void SLTEraseAfter(STL_Node* pos);//销毁链表 void SListDesTroy(STL_Node** pphead); SList.c 打印 不改变实参传一级指针新建立一个头节点pur用while循环每次循环打印pur里面的数据并将pur-next赋给pur。以pur ! NULL为循环终止条件。 新建节点 创建一个newnode指针指向一个新开辟的节点将数据x放进data将next置空。 尾插 要改变实参传一个二级指针用新建节点函数新建一个newnode。这里分情况 1如果*pphead为空即这个链表没有节点就直接将newnode赋给pphead。 2这里要先找尾定义一个ptail指针首先指向*pphead之后用whlie循环进行找尾。将ptail-next指向newnode。 头插 头插比较简单因为不需要找尾传一个二级指针新建一个节点将newnode的next指向*pphead将*pphead指向newnode。就完成了头节点的替换。 尾删 传二级指针尾删和尾插差不多的只是在找尾的时候需要两个指针最后分别指向尾节点和尾节点的前一个节点。这里就不多叙述了。 头删 传二级指针新建一个指针指向第二个节点将第一个节点释放掉后将*pphead指向先前备份好的第二个节点。 查找元素 传一级指针新建一个指针指向phead循环遍历链表里面的数据得到结果返回相应节点的指针否则返回空指针。 在指定位置前/后插入数据 因为前插比较复杂这里只讲前插。 传二级指针先新建一个节点将数据放进去分两种情况 1pos为头指针这里直接调用头插的函数。 2pos不为头指针新建指针prev这里还是用while循环找pos前一个节点的指针循环结束条件为prev-next ! pos 、之后将prev的next指向新节点新节点的next指向pos 删除pos节点/删除pos之后的节点第二个我觉得没必要 这里讲第一个传二级指针分两种情况 1pos *pphead直接调用头插。 2pos *pphead新建指针prev用while循环找尾节点的前一个节点不多讲将prev的next指向pos的next此时pos就不在链表里面了只需要将它的空间释放掉将指针置空就ok了。 销毁链表 传二级指针用while在循环里面将当前*pphead指向的空间释放再将*pphead指向下一个节点结束条件为*pphead ! NULL循环结束后记得将*pphead置空这是个好习惯 下面参考代码附上 #define _CRT_SECURE_NO_WARNINGS 1 #includeSList.hvoid SLTPrint(STL_Node* phead) {STL_Node* pur phead;while (pur){printf(%d-, pur-Data);pur pur-Next;}printf(NULL\n); }STL_Node* SLTBuyNode(SList_Datatype x) {STL_Node* newnode (STL_Node*)malloc(sizeof(STL_Node));if (newnode NULL){perror(malloc is fail!);exit(1);}newnode-Data x;newnode-Next NULL;return newnode; }void SLTPushBack(STL_Node** pphead, SList_Datatype x) {assert(pphead);STL_Node* newnode SLTBuyNode(x);if (*pphead NULL){*pphead newnode;}else{STL_Node* ptail *pphead;while (ptail-Next){ptail ptail-Next;}ptail-Next newnode;} }void SLTPushFront(STL_Node** pphead, SList_Datatype x) {assert(pphead);STL_Node* newnode SLTBuyNode(x);newnode-Next *pphead;*pphead newnode; }void SLTPopBack(STL_Node** pphead) {assert(pphead*pphead);if ((*pphead)-Next NULL){free(pphead);pphead NULL;}STL_Node* prve *pphead;STL_Node* ptail *pphead;while (ptail-Next){prve ptail;ptail ptail-Next;}free(ptail);ptail NULL;prve-Next NULL; }void SLTPopFront(STL_Node** pphead) {assert(pphead*pphead);STL_Node* tmp (*pphead)-Next;free(*pphead);*pphead tmp; }STL_Node* SLTFind(STL_Node* phead, SList_Datatype x) {STL_Node* pur phead;while (pur){if (pur-Data x){return pur;}pur pur-Next;}return NULL; } //在指定位置之前插入数据 void SLTInsert(STL_Node** pphead, STL_Node* pos, SList_Datatype x) {assert(pphead*pphead);assert(pos);STL_Node* newnode SLTBuyNode(x);if (*pphead pos){SLTPushFront(pphead,x);free(newnode);newnode NULL;}else{STL_Node* prve *pphead;while (prve-Next ! pos){prve prve-Next;}prve-Next newnode;newnode-Next pos;} } //在指定位置之后插入数据 void SLTInsertAfter(STL_Node* pos, SList_Datatype x) {assert(pos);STL_Node* newnode SLTBuyNode(x);newnode-Next pos-Next;pos-Next newnode; } //删除pos节点 void SLTErase(STL_Node** pphead, STL_Node* pos) {assert(pphead*pphead);assert(pos);if (pos *pphead)SLTPopFront(pphead);else{STL_Node* prev *pphead;while (prev-Next ! pos){prev prev-Next;}prev-Next pos-Next;free(pos);pos NULL;} } //删除pos之后的节点 void SLTEraseAfter(STL_Node* pos) {assert(pospos-Next);STL_Node* del pos-Next;pos-Next del-Next;free(del);del NULL; } //销毁链表 void SListDesTroy(STL_Node** pphead) {assert(pphead *pphead);while (*pphead){STL_Node* next (*pphead)-Next;free(*pphead);*pphead next;}*pphead NULL; }本期博客到这里就结束了如果有什么错误欢迎指出如果对你有帮助请点个赞谢谢
http://www.pierceye.com/news/628091/

相关文章:

  • 金融审核网站制作站长之家网址ip查询
  • 石家庄做家教网站网络营销网站建设
  • 怎么做淘宝网站赚钱吗怎样提高百度推广排名
  • 购物网站建设成本u9u8网站建设
  • 抚州市住房和城乡建设局网站手机网站素材
  • 用dw做音乐网站模板策划公司收费明细
  • 大气手机网站模板免费下载南昌seo排名
  • 做卖衣服网站源代码seo搜索引擎优化名词解释
  • 东营免费建网站网络运维必备知识
  • 盐城建设网站备案 网站负责人
  • 外贸营销网站怎么建设网站域名注册证书
  • 安徽网站建设首选-晨飞网络甘肃泾川县门户网站两学一做
  • 360°网站标签旋转显示特效建筑设计专业比较好的学校
  • 郫县建设局网站中文wordpress模版
  • 塔里木油田公司档案馆网站建设研究响应式网站建设教程
  • wordpress侧边栏怎么加php代码重庆seo优化公司
  • 自做建材配送网站做的比较好的游戏网站
  • 建设网站公司兴田德润在哪里秦皇岛海港区
  • 做网站阜阳百度投放广告
  • 北京互联网金融公司排名网站栏目优化
  • 教育网站解决方案用wordpress制作表单
  • 整站wordpress下载phpcms 网站标题
  • 湛江市建设局官网站品牌网络营销方法分析
  • 做网站数据库表各字段详情福建省港航建设发展有限公司网站
  • 潍坊 营销型网站建设游戏设计师网站有哪些
  • 用花生棒做网站快吗大型网站开发合同
  • 网站建设什么原因最主要wordpress mu安装
  • 龙岗网站设计公司价格wordpress商品属性选择
  • 企业网站如何优化足球比方类网站开发
  • 大型网站开发 优帮云公司制度建设的意义