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

政务网站的建设wordpress友情联机

政务网站的建设,wordpress友情联机,制图软件有哪几种,子网站建设方案✅作者简介#xff1a;大家好#xff0c;我是橘橙黄又青#xff0c;一个想要与大家共同进步的男人#x1f609;#x1f609; #x1f34e;个人主页#xff1a;橘橙黄又青-CSDN博客 目的#xff1a;学习双向带头链表的增#xff0c;删#xff0c;查#xff0c;销毁… ✅作者简介大家好我是橘橙黄又青一个想要与大家共同进步的男人 个人主页橘橙黄又青-CSDN博客 目的学习双向带头链表的增删查销毁。 1. 双向链表的结构 注意这⾥的“带头”跟前⾯我们说的“头节点”是两个概念实际前⾯的在单链表阶段称呼不严 谨但是为了同学们更好的理解就直接称为单链表的头节点。 带头链表⾥的头节点实际为“哨兵位”哨兵位节点不存储任何有效元素只是站在这⾥“放哨 的” 哨兵位”存在的意义 遍历循环链表避免死循环。 结构图解 代码 2. 双向链表的实现 双向链表的定义结构 链表空间申请节点和初始化  2.1哨兵位的申请 2.2带头双向链表打印  我们来分析分析 代码 这里补充一下为什么是传值因为临时拷贝一份打印就行不用打印链表。 2.3双向链表的头插 2.4双向链表的尾插  尾插一个val尾x的元素 2.5双向链表的头删 2.6双向链表的尾删 2.7双线链表的查找  2.8双向链表在指定位置插入 2.9双向链表删除指定位置节点 2.10 双向链表销毁  3.项目代码 Test.c #includeList.h void ListTest01() {//LTNode* plist NULL;//LTInit(plist);LTNode* plist LTInit();//尾插//LTPushBack(plist, 1);//LTPushBack(plist, 2);//LTPushBack(plist, 3);//LTPushBack(plist, 4);//LTPrint(plist);//头插LTPushFront(plist, 1);LTPushFront(plist, 2);LTPushFront(plist, 3);LTPushFront(plist, 4);LTPrint(plist); //4-3-2-1-////LTPopBack(plist);//LTPrint(plist);//LTPopBack(plist);//LTPrint(plist);//LTPopBack(plist);//LTPrint(plist);//LTPopBack(plist);//LTPrint(plist);//LTPopBack(plist);//LTPrint(plist);////头删//LTPopFront(plist);//LTPrint(plist);//LTPopFront(plist);//LTPrint(plist);//LTPopFront(plist);//LTPrint(plist);//LTPopFront(plist);//LTPrint(plist);//LTPopFront(plist);//LTPrint(plist);LTNode* findRet LTFind(plist, 3);/*if (findRet NULL) {printf(未找到\n);}else {printf(找到了\n);}*/在指定位置之后插入数据//LTInsert(findRet, 66); //4-3-2-1-66-//LTPrint(plist);//删除pos位置的节点LTErase(findRet);LTPrint(plist);LTDesTroy(plist);plist NULL; }int main() {ListTest01();return 0; } List.h代码 #pragma once #includestdio.h #includestdlib.h #includeassert.h//定义双向链表中节点的结构 typedef int LTDataType; typedef struct ListNode {LTDataType data;struct ListNode* prev;struct ListNode* next; }LTNode;//注意双向链表是带有哨兵位的插入数据之前链表中必须要先初始化一个哨兵位 //void LTInit(LTNode** pphead); LTNode* LTInit(); //void LTDesTroy(LTNode** pphead); void LTDesTroy(LTNode* phead); //推荐一级保持接口一致性void LTPrint(LTNode* phead);//不需要改变哨兵位则不需要传二级指针 //如果需要修改哨兵位的话则传二级指针//头插尾插 void LTPushBack(LTNode* phead, LTDataType x); void LTPushFront(LTNode* phead, LTDataType x);//头删、尾删 void LTPopBack(LTNode* phead); void LTPopFront(LTNode* phead);//查找 LTNode* LTFind(LTNode* phead, LTDataType x);//在pos位置之后插入数据 void LTInsert(LTNode* pos, LTDataType x); //删除pos位置的数据 void LTErase(LTNode* pos);List.c代码 #includeList.h LTNode* LTBuyNode(LTDataType x) {LTNode* newnode (LTNode*)malloc(sizeof(LTNode));if (newnode NULL) {perror(malloc fail!);exit(1);}newnode-data x;newnode-next newnode-prev newnode;return newnode; } //void LTInit(LTNode** pphead) { // *pphead (LTNode*)malloc(sizeof(LTNode)); // if (*pphead NULL) { // perror(malloc fail!); // exit(1); // } // (*pphead)-data -1; // (*pphead)-next (*pphead)-prev *pphead; //}//哨兵位不含数据。存在目的避免链表死循环 LTNode* LTInit() {LTNode* phead LTBuyNode(-1);return phead; }//尾插 void LTPushBack(LTNode* phead, LTDataType x) {assert(phead);LTNode* newnode LTBuyNode(x);//phead phead-prev(ptail) newnodenewnode-next phead;newnode-prev phead-prev;phead-prev-next newnode;phead-prev newnode; }//头插 void LTPushFront(LTNode* phead, LTDataType x) {assert(phead);LTNode* newnode LTBuyNode(x);//phead newnode phead-nextnewnode-next phead-next;newnode-prev phead;phead-next-prev newnode;phead-next newnode; }//链表打印 void LTPrint(LTNode* phead) {//phead不能为空assert(phead);LTNode* pcur phead-next;while (pcur ! phead){printf(%d-, pcur-data);pcur pcur-next;}printf(\n); }//尾删 void LTPopBack(LTNode* phead) {assert(phead);//链表为空只有一个哨兵位节点assert(phead-next ! phead);LTNode* del phead-prev;LTNode* prev del-prev;prev-next phead;phead-prev prev;free(del);del NULL; } //头删 void LTPopFront(LTNode* phead) {assert(phead);assert(phead-next ! phead);LTNode* del phead-next;LTNode* next del-next;//phead del nextnext-prev phead;phead-next next;free(del);del NULL; }//查找 LTNode* LTFind(LTNode* phead, LTDataType x) {assert(phead);LTNode* pcur phead-next;while (pcur ! phead){if (pcur-data x) {return pcur;}pcur pcur-next;}return NULL; }//在pos位置之后插入数据 void LTInsert(LTNode* pos, LTDataType x) {assert(pos);LTNode* newnode LTBuyNode(x);//pos newnode pos-nextnewnode-next pos-next;newnode-prev pos;pos-next-prev newnode;pos-next newnode; }//删除pos位置的数据 void LTErase(LTNode* pos) {assert(pos);//pos-prev pos pos-nextpos-next-prev pos-prev;pos-prev-next pos-next;free(pos);pos NULL; }//void LTDesTroy(LTNode** pphead) { // assert(pphead); // //哨兵位不能为空 // assert(*pphead); // // LTNode* pcur (*pphead)-next; // while (pcur ! *pphead) // { // LTNode* next pcur-next; // free(pcur); // pcur next; // } // //链表中只有一个哨兵位 // free(*pphead); // *pphead NULL; //}//链表销毁 void LTDesTroy(LTNode* phead) {//哨兵位不能为空assert(phead);LTNode* pcur phead-next;while (pcur ! phead){LTNode* next pcur-next;free(pcur);pcur next;}//链表中只有一个哨兵位free(phead);phead NULL; } 感谢观看都看到这里了点一个赞谢谢。
http://www.pierceye.com/news/608097/

相关文章:

  • 佛山网站建设玲念建站会议管理系统
  • 网站开发需要什么资质天马行空网站建设
  • 猎聘网网站建设目标怎么做网站上的模拟动画
  • 南通制作企业网站福州做网站设计
  • 上什么网站做会计教育wordpress cookies
  • 山东网站备案号四川省建筑信息网
  • 网站开发可以用哪些语言中国十二冶金建设有限公司网站
  • 中药网站模板襄阳seo优化服务
  • 做爰片免费观看网站会展企业网站建设方案
  • 国内空间没备案可以打开网站吗dw做网站 怎么做背景图片
  • host绑定网站国外网站风格
  • 安顺建设局网站wordpress 分页
  • 重庆做网站个人外网登录不了WordPress
  • 医药平台网站建设网站排名做不上去
  • 网站关键词优化培训怎样使用wordpress
  • wordpress多站做网站空间百度云和阿里云区别
  • 衡水企业网站制作公司3000块钱在朋友圈投放广告
  • 做网站没有公网北京网页制作教程
  • 运城哪家做网站的公司好小商铺装修
  • 如何访问win7下做的网站时间轴网站模板
  • html5网站制作软件做app找哪个网站吗
  • 网站名称怎么备案外贸商城网站模板
  • 网页设计网站网站建设课程设计客户关系管理流程图
  • 网站开发遇到的难题品牌策划公司有哪些
  • 网站如何做视频链接网络服务器可提供的常见服务
  • 做二手钢结构网站有哪些网站建设开发ppt
  • 做网站分什么软件免费备案网站空间
  • 网站建设公司大全如何制作网站视频的软件
  • 手机网站开发有前途软件开发服务费税率
  • 代做网站的公司有哪些logo一键生成器不要钱的