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

杭州建站模板展示php网站成品

杭州建站模板展示,php网站成品,2021软件公司排名,惠州网络推广哪里找本篇博客主要是单链表#xff08;无头单项不循环#xff09;的实现的代码分享 说明#xff1a;因为此单链表无头#xff08;哨兵位#xff09;#xff0c;可以说成没有初始化也可以说初始化时没有一个有效地址作为单链表的起始地址 例如下面代码中的plist NULL。 所以在… 本篇博客主要是单链表无头单项不循环的实现的代码分享 说明因为此单链表无头哨兵位可以说成没有初始化也可以说初始化时没有一个有效地址作为单链表的起始地址 例如下面代码中的plist NULL。 所以在后面函数链表为空时头插、尾插、插入实现过程中需要将plist(单链表头结点地址)修改就需要传址操作(在这里需要传单链表节点地址的地址)而且为了代码接口的一致性在单链表函数实现中全部传了单链表节点地址的地址 图解 SLNode* plist NULL;//只是定义了一个单向链表节点的地址而且地址还NULLSLNodePushBack(plist,1); 头文件Single List.h #pragma once #includestdio.h #includestdlib.h #includeassert.htypedef int SLNodeDataType; typedef struct Single_Linked_ListNode {SLNodeDataType data;struct Single_Linked_ListNode* next; }SLNode;// void SLNodePushBack(SLNode** pphead, SLNodeDataType x); void SLNodePushFront(SLNode** pphead, SLNodeDataType x);void SLNodePopBack(SLNode** pphead); void SLNodePopFront(SLNode** pphead);SLNode* SLNodeBuyNode(SLNodeDataType x); void SLNodePrint(SLNode** pphead);SLNode* SLNodeFind(SLNode** pphead,SLNodeDataType x);void SLNodeInsert(SLNode** pphead, SLNode* pos, SLNodeDataType x); void SLNodeErase(SLNode** pphead, SLNode* pos);void SLNodeInsertAfter(SLNode** pphead, SLNode* pos, SLNodeDataType x); void SLNodeEraseAfter(SLNode** pphead, SLNode* pos);void SListDestroy(SLNode** pphead) 源文件Single Link.c #define _CRT_SECURE_NO_WARNINGS 1 #includeSingle List.hSLNode* SLNodeBuyNode(SLNodeDataType x) {SLNode* tmp malloc(sizeof(SLNode));if (tmp NULL){perror(malloc fail!);exit(1);}tmp-data x;tmp-next NULL;return tmp; }; void SLNodePushBack(SLNode** pphead, SLNodeDataType x) {assert(pphead);SLNode* pnewnode SLNodeBuyNode(x);//链表为空新节点做头节点if (*pphead NULL){*pphead pnewnode;return;}//链表不为空找尾节点SLNode* ptail *pphead;while (ptail-next ! NULL){ptail ptail-next;}ptail-next pnewnode;}; void SLNodePushFront(SLNode** pphead, SLNodeDataType x) {assert(pphead);SLNode* pnewnode SLNodeBuyNode(x);//链表为空新节点做头节点if (*pphead NULL){*pphead pnewnode;return;}//链表不为空pnewnode-next *pphead;*pphead pnewnode;}void SLNodePopBack(SLNode** pphead) {assert(pphead);assert(*pphead);//确保有节点//只有一个节点if ((*pphead)-next NULL){free(*pphead);//置空前不要忘了释放空间*pphead NULL;return;//不需要再走了}//多节点,找尾节点前一个节点SLNode* ptailprev *pphead;while ((ptailprev-next-next) ! NULL){ptailprev ptailprev-next;}free(ptailprev-next);ptailprev-next NULL;} void SLNodePopFront(SLNode** pphead) {assert(pphead);assert(*pphead);//必须有节点一个节点//if ((*pphead)-next NULL)//{// free(*pphead);// *pphead NULL;// return;//}多个节点SLNode* tmp (*pphead)-next;free(*pphead);*pphead tmp;}void SLNodePrint(SLNode** pphead) {SLNode* pcur *pphead;while (pcur){printf(%d-,pcur-data);pcur pcur-next;}printf(NULL\n); }SLNode* SLNodeFind(SLNode** pphead,SLNodeDataType x) {assert(pphead);//遍历链表SLNode* pcur *pphead;while (pcur){if (pcur-data x){return pcur;}pcurpcur-next;}//没找到return NULL; } void SLNodeInsert(SLNode** pphead, SLNode* pos, SLNodeDataType x) {assert(pphead);assert(pos);//链表不为空assert(*pphead);SLNode* pnewnode SLNodeBuyNode(x);//头节点插入if (pos *pphead){SLNodePushFront(pphead,x);return;}//其他节点SLNode* prev *pphead;while (prev-next!pos){prev prev-next;}prev-next pnewnode;pnewnode-next pos; } void SLNodeErase(SLNode** pphead, SLNode* pos) {assert(pphead);assert(pos);assert(*pphead);if (*pphead pos){ SLNodePopFront(pphead);return;}SLNode* prev *pphead;while (prev-next ! pos){prev prev-next;}SLNode* pnext pos-next;pos-next NULL;free(pos);pos NULL;prev - next pnext; }void SLNodeInsertAfter(SLNode** pphead, SLNode* pos, SLNodeDataType x) {assert(pphead);assert(pos);SLNode* pnewnode SLNodeBuyNode(x);SLNode* pnext pos-next;pos-next pnewnode;pnewnode-next pnext;} void SLNodeEraseAfter(SLNode** pphead, SLNode* pos) {assert(pphead);assert(pos);assert(pos-next);//pos pnext pnextnextSLNode* pnext pos-next;SLNode* pnextnext pnext-next;pos-next pnextnext;pnext-next NULL;free(pnext);pnext NULL;}void SListDestroy(SLNode** pphead) {assert(pphead);assert(*pphead);SLNode* pcur *pphead;while (pcur){SLNode* next pcur-next;free(pcur);pcur next;}*pphead NULL; } 测试test.c #define _CRT_SECURE_NO_WARNINGS 1 #includeSingle List.hint main() {SLNode* plist NULL;SLNodePushBack(plist,1);SLNodePushBack(plist,2);SLNodePushBack(plist,3);SLNodePushBack(plist,4);SLNodePushBack(plist,5);SLNodePrint(plist);SLNodePushFront(plist, 100);SLNodePushFront(plist, 200);SLNodePushFront(plist, 300);SLNodePushFront(plist, 400);SLNodePrint(plist);SLNodePopBack(plist);SLNodePopBack(plist);SLNodePrint(plist);SLNodePopFront(plist);SLNodePopFront(plist);SLNodePopFront(plist);SLNodePrint(plist);SLNode* findinex SLNodeFind(plist,100 );if (findinex){printf(找到了\n);}else{printf(未找到\n);}SLNodeInsert(plist,findinex,1000);SLNodePrint(plist);SLNodeErase(plist,findinex);SLNodePrint(plist);SLNode* findinex2 SLNodeFind(plist, 1000);if (findinex2){printf(找到了\n);}else{printf(未找到\n);}//SLNodeErase(plist, findinex2);SLNodePrint(plist);SLNodeInsertAfter(plist, findinex2, 666);SLNodePrint(plist);SLNode* findinex3 SLNodeFind(plist,1000);if (findinex3){printf(找到了\n);}else{printf(未找到\n);}SLNodeEraseAfter(plist, findinex3);SLNodePrint(plist);return 0;SListDestroy(plist); } 这个博客如果对你有帮助给博主一个免费的点赞就是最大的帮助❤ 欢迎各位点赞收藏和关注哦❤ 如果有疑问或有不同见解欢迎在评论区留言哦❤ 后续我会一直分享双一流211西北大学本科生我自己的软件学习过程C数据结构CLinuxMySQL的学习干货以 及重要代码的分享
http://www.zqtcl.cn/news/494379/

相关文章:

  • 电商网站开发过程是什么推广整合营销
  • 网页建站软件网络市场调研的步骤
  • 自己做的网站怎样赚钱长沙专业做网站排名
  • 张家界做网站公司国内最先做弹幕的网站
  • 免费快速建站网站做网站用什么数据库
  • 哪有做课件赚钱的网站温州设计公司排名
  • 西安网站建设公司php大气企业网站
  • 天河公司网站建设内蒙古建设厅安全资料网站
  • 学习网站的建设怎么做网站建设作业
  • 做公司产品展示网站企业网盘源码
  • 南通做网站企业初中生代表性设计制作作品图片
  • php框架做网站好处网站后台模板免费下载
  • 新兴县建设局网站建筑工程网络计划技术
  • 住房和城乡建设部网站北京网站建设设计规划
  • 哪个网站做logo设计师网络营销心得体会800字
  • 广州一起做的网站动态数据库网站
  • 网站程序预装深圳市住房和建设局陈斌
  • 网站建设历程wordpress国内主题排行
  • 公司网站建设及优化计划书找能做网站的
  • 网站建设方案模板下载南宁有名的网络公司
  • 本地做织梦网站做软件怎么赚钱
  • a站全称重庆大学网络教育平台
  • 美橙做过网站案例好文案网站
  • 鞍山商城网站建设国外代理ip
  • 东莞网站设计风格wordpress不能启动怎么解决
  • 社交网站制作临海建设局网站导航
  • 合肥需要做网站的公司佛山网站制作的公司
  • 哪里有做网站平台建设网站如何盈利
  • dw网站制作素材单人做网站需要掌握哪些知识
  • 网络推广产品公司做移动网站优化首