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

做网站的地方河南省干部任免最新公示

做网站的地方,河南省干部任免最新公示,西安网站建设培训班,小程序快速搭建1. 双向链表的结构 注意#xff1a;这里的“带头”跟单链表的“头结点”是两个概念#xff0c;实际上在单链表阶段称呼不太严谨#xff0c;但是为了更好地理解就直接称为单链表的头结点。带头链表里的头结点#xff0c;实际为“哨兵位”#xff0c;哨兵位结点不存储任何有…1. 双向链表的结构 注意这里的“带头”跟单链表的“头结点”是两个概念实际上在单链表阶段称呼不太严谨但是为了更好地理解就直接称为单链表的头结点。带头链表里的头结点实际为“哨兵位”哨兵位结点不存储任何有效元素只是站在这里“放哨的”。 “哨兵位”存在的意义 遍历循环链表避免死循环。 2. 双向链表的实现 2.1 双向链表结构体 typedef int LTDataType; // 定义双向链表节点的结构 typedef struct ListNode {LTDataType data;struct ListNode* next;struct ListNode* prev; }LTNode; 2.2 申请结点 // 申请节点 LTNode* LTBuyNode(LTDataType x) {LTNode* node (LTNode*)malloc(sizeof(LTNode));if (node NULL){perror(malloc fail!);exit(1);}node-data x;node-next node-prev node;return node; } 2.3 初始化 // 初始化 void LTInit(LTNode** pphead) {// 给链表创建一个哨兵位*pphead LTBuyNode(-1); } 2.4 链表的销毁 // 销毁 void LTDestroy(LTNode* phead) {assert(phead);LTNode* pcur phead-next;while (pcur ! phead){LTNode* next pcur-next;free(pcur);pcur next;}// 此时pcur指向phead而phead还没有被销毁free(phead);phead NULL; } 2.5 链表的打印 // 打印 void LTPrint(LTNode* phead) {LTNode* pcur phead-next;while (pcur ! phead){printf(%d-, pcur-data);pcur pcur-next;}printf(\n); } 2.6 链表的尾插 // 尾插 void LTPushBack(LTNode* phead, LTDataType x) {assert(phead);LTNode* newNode LTBuyNode(x);// 旧的尾结点就是phead-prev// 先让新的尾结点的前指针指向旧的尾结点newNode-prev phead-prev;newNode-next phead; // 再让新的尾结点的下一级指针指向头结点哨兵位// 旧的尾结点下一级指针指向新的尾结点phead-prev-next newNode;phead-prev newNode; // 再让头结点哨兵位的下一级指针指向新的尾结点 } 2.7 链表的头插 // 头插 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; // 头结点的下一级指针指向新的结点// 这样也是可行的phead-next newNode; // 头结点的下一级指针指向新的结点newNode-next-prev newNode; // 指向头结点的下一级指针的结点的下一级指针指向新的结点} 2.8 链表的尾删 // 尾删 void LTPopBack(LTNode* phead) {// 链表必须有效且链表不能为空只有一个哨兵位assert(phead phead-next ! phead);LTNode* del phead-prev;// 影响的指针phead del-prev deldel-prev-next phead;phead-prev del-prev;// 删除del节点free(del);del NULL; } 2.9 链表的头删 // 头删 void LTPopFront(LTNode* phead) {// 链表必须有效且链表不能为空只有一个哨兵位assert(phead phead-next ! phead);LTNode* del phead-next;// 影响的指针phead del del-nextphead-next del-next;del-next-prev phead;// 删除del节点free(del);del NULL; } 2.10 链表查找数据 // 查找数据 LTNode* LTFind(LTNode* phead, LTDataType x) {LTNode* pcur phead-next;while (pcur ! phead){if (pcur-data x){return pcur;}pcur pcur-next;}// 没有找到return NULL; } 2.11 在pos位置之后插入数据 // 在 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; } 2.12 删除pos结点 // 删除 pos节点 void LTErase(LTNode* pos) {// pos理论上来说不能为phead但是没有参数phead无法增加校验assert(pos);// 影响的指针pos-prev pos pos-nextpos-next-prev pos-prev;pos-prev-next pos-next;free(pos);pos NULL; }
http://www.hkea.cn/news/14320252/

相关文章:

  • 企业网站建设北京公司排名装修设计师一般多少钱
  • 主流网站开发语言有哪些国外空间做网站怎么样
  • 福州市市政建设开发有限公司网站c语言软件开发和网站开发区别
  • 网站开发软件排名网页设计结课报告
  • 网站怎样添加百度地图网站开发公司不干了
  • 昌吉市建设局网站营销型网站工程
  • 做网站费用 优帮云网站研发公司
  • 之前做的网站推广怎么删除成全视频免费观看在线看第7季动漫
  • sns网站是什么网络营销的方式都有哪些
  • 做外贸哪些网站可以发免费信息秦皇岛网站建公司
  • 校园网站建设管理制度微信小程序怎么做商城
  • 网站设计与管理方向做我的世界壁纸网站
  • php+mysql网站开发全程实例 下载网站网站开发
  • 软件商店电脑版下载如何进行关键词优化工作
  • .org做商业网站营销推广有哪些公司
  • 网页设计网站哪个公司好epanel wordpress
  • 城阳做网站找哪家诱导网站怎么做
  • 江苏靖江苏源建设有限公司招标网站手机网络不好怎么回事但信号是满的
  • 网站建设范文wordpress页面模版调用分类目录
  • 天津网站建设哪里好品牌推广名词解释
  • 沧州做网站的大公司微平台是什么意思
  • 太原seo网站优化电商网站cms
  • 公众号首图制作网站怎么在云服务器上搭建网站
  • 聊城网站建设工作室小程序开发 杭州
  • 单位网站开发费用入什么费用湘潭网站建设 安全还踏实磐石网络
  • 做兼职的设计网站有哪些工作内容网站设计目的与规划
  • 国外网站建设现状广东网站系统建设
  • 房地产网站大全潍坊大宇网络网站建设
  • 企业网站可信认证必须做吗图库素材网站模板
  • 上海高端网站建设制作旅游网站开发研究背景