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

做网站西安建设工程法律法规

做网站西安,建设工程法律法规,做装修的应该去哪网站找客户,一定seo自己网站吗循环链表#xff1a;循环单链表、循环双链表 1. 循环单链表 循环单链表#xff08;Circular Singly Linked List#xff09;是一种特殊类型的单链表#xff0c;其中最后一个节点的指针指向头节点#xff0c;形成一个循环。 循环单链表与普通单链表的主要区别在于#xf…循环链表循环单链表、循环双链表 1. 循环单链表 循环单链表Circular Singly Linked List是一种特殊类型的单链表其中最后一个节点的指针指向头节点形成一个循环。 循环单链表与普通单链表的主要区别在于循环单链表的尾节点的指针不是指向 nullptr而是指向头节点形成一个闭环。这意味着在循环单链表中可以通过尾节点的指针重新回到头节点。 循环单链表可以具有以下特点和优势 尾节点的指针指向头节点使得在遍历链表时不需要特别处理尾节点方便实现循环遍历。可以更容易地进行环形操作如判断链表是否形成环、寻找环的起始点等。循环单链表的插入和删除操作相对简单因为不需要特别处理头部和尾部情况。在使用循环单链表时我们需要额外关注以下几点在插入和删除节点时要确保更新指针的正确性以避免死循环或链表中断。在循环单链表中遍历时要设置终止条件防止进入无限循环。 1.1 初始化一个循环单链表 typedef struct LNode //定义单链表结合类型 {ElemType data; //每个结点存放一个一个数据元素struct LNode *next; //指针指向下一个结点 }LNode, *LinkList;//初始化一个循环单链表 bool InitList(LinkList L) {L (LNode *) malloc(sizeof(LNode)); //分配一个头结点if(L NULL) //内存不足、分配失败return false;L-next L; //头结点next指向头结点return true; }2.2 判断单链表是否为空 //判断循环单链表是否为空, 检查头结点指针是否指向它自己就行,如下图所示 bool Empty(LinkList L) {if(L-next L) //检查头结点指针是否指向它自己return true;else return false; }2.3 判断 p 结点是否为循环单链表的表尾结点 //判断 p 结点是否为循环单链表的表尾结点 bool isTail(LinkList L, LNode *p) {if(p-next L)return true;elsereturn false; }从头结点找到尾部时间复杂度为O(n), 从尾部找到头部时间复杂度为O(1), 可以让L指向表尾元素(插入、删除时可能需要修改L) 2. 循环双链表 循环双链表Circular Doubly Linked List是一种特殊类型的双向链表其中最后一个节点的下一个指针指向头节点头节点的前一个指针指向最后一个节点形成一个循环。 循环双链表与普通双链表的主要区别在于循环双链表既具有双向链表的前驱和后继关系也具有循环遍历的能力。 双链表表头结点的prior指向NULL; 表尾结点的next指向NULL。 循环双链表表头结点的prior指向表尾结点 表尾结点的next指向头结点。 2.1循环双链表的特点和优势 可以通过任意节点的前驱和后继指针方便地在双链表中进行插入和删除操作。最后一个节点的下一个指针指向头节点使得在遍历链表时不需要特别处理尾节点可以很方便地实现循环遍历。可以更容易地进行环形操作如判断链表是否形成环、寻找环的起始点等。循环双链表的插入和删除操作相对简单不需要特别处理头部和尾部情况。 在插入和删除节点时要确保更新前驱和后继指针的正确性以避免链表中断或形成其他错误结构。 在循环双链表中遍历时要设置终止条件防止进入无限循环。 2.2 循环双链表的初始化 当我们在初始化一个双链表时需要让头结点的前指针和后指针都指向头结点自己而普通的双链表指向NULL如下图所示 //初始化空的循环双链表 bool InitDLinkList(DlinkList L) {L (DNode*) malloc(sizeof(DNode)); //分配一个头结点if(L  NULL) //内存不足分配失败return false;L-prior L; //头结点的prior指向头结点L-next L; //头结点的next指向头结点return true; //初始化成功 }2.3 判断循环链表是否为空 typedef struct DNode //创建循环双链表 {ElemType data;struct DNode *prior,*next; }DNode, *DLinkList;void testDLinkList() {//初始化循环双链表DLinkList L;InitDLinkList(L);//.......后续代码....... } //判断循环链表是否为空 bool Empty(DLinkList L) {if(L-next L)return true;elsereturn false; } 2.4 判断结点p是否为循环双链表的表尾结点 bool isTail(DLinkList L, DNode *p) {if(p-next L)return true;elsereturn false; }2.5 双链表的插入 //在p结点之后插入s结点 bool InsertNextDNode(DNode *p, DNode *s) {s-next p-next; //将结点*s插入到结点*p之后p-next-prior s; //如果s-prior p;p-next s; }2.6 双链表的删除 //删除p的后继结点q p-next q-next; q-next-prior p; //如果p没有后继结点普通循环链表会出问题 free(q);3. 知识回顾
http://www.yutouwan.com/news/217793/

相关文章:

  • 赤峰网站设计专业网站设计制作价格
  • 河南平台网站建设做免费网站安全吗
  • 推广型网站开发网址wordpress主题需要ftp
  • 上饶网站开发wordpress 文章翻页
  • 华为公司网站建设案例分析门户网站建设情况调研报告
  • 龙华网站设计世界500强企业有哪些
  • 做网站要用到什么软件专做女裤有哪些网站
  • 克拉玛依网站建设公司项目管理软件 project教程
  • 五路居网站建设上海城隍庙小吃推荐
  • 做sohu最好的推广网站石家庄网站制作找谁
  • 网站建设与网页设计教程大连网站推广优化
  • 上海网站建设建站房地产销售话术
  • 广州车陂网站建设公司泌阳专业网站建设
  • 旅游网站的功能温州市建设工程信息网
  • 织梦贷款网站源码网站搭建视频
  • 网站域名登记证明文件建设部网站最新消息
  • dede网站搬家教程什么网站专门做自由行的
  • 网站备案要关站吗多个域名指向同一个网站 备案
  • 内江做网站哪里便宜网站建设与管理 情况总结
  • 江苏南京建设厅网站音乐制作软件
  • 网站系统源代码郑州市做网站
  • 网站建设财务计划与预测软件开发学院
  • 网页升级紧急通知页面seo服务商
  • 域名网站负责人的责任wordpress每页不显示文章
  • 汇泽网站建设asp网站下载
  • 顺德网站建设要多少钱木藕设计网
  • 郑州手机网站搭建免费白嫖国外服务器app
  • 龙华响应式网站建设唐山哪个公司可以建网站
  • 烟台网站制作公司在线咨询怎么自己开发app软件
  • 网站友链查询接口梅州高铁