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

循环链表和双向链表

一、 带尾指针的循环链表的合并

算法步骤:

  1. p存表头结点——p=Ta->next;
  2. Tb表头连接到Ta表尾——Ta->next=Tb->next->next;
  3. 释放Tb表头结点——delate Tb->next;
  4. 修改指针——Tb->next=p;
LinkList Connect(LinkList Ta,LinkList Tb){p=Ta->next;    //p存表头结点Ta->next=Tb->next->next;  //Tb表头连接Ta表尾delete Tb->next;   //释放Tb表头结点Tb->next=p;    //修改指针return Tb;
}
二、 双向链表

结构定义如下:

typedef struct DuLNode{Elemtype data;struct DuLNode *prior,*next;
}DuLNode,*DuLinkList;
priordatanext

双向链表结点结构 

三、 双向循环链表

和单链的循环表类似,双向链表也可以有循环表

  • 让头结点的前驱指针指向链表的最后一个结点
  • 让最后一个结点的后继指针指向头结点
四、 双向链表的删除
void ListDelete_DuL(DuLink &L,int i,ElemType &e){//删除带头结点的双向循环链表L的第i个元素,并用e带回if(!(p=GetElemP_DuL(L,i)))  return ERROR;e=p->data;p->piror->next=p->next;p->next->prior=p->prior;free(p);return OK;
}


http://www.mrgr.cn/news/43938.html

相关文章:

  • P1376 [USACO05MAR] Yogurt factory 机器工厂
  • MySQL GROUP_CONCAT函数踩坑小记
  • 微知-梅林系统设置无线桥接模式后如何登录梅林路由器?
  • 在职场上,态度永远比能力更重要
  • 前端工程化
  • Coze:如何用自然语言优化聊天机器人的输出结果?
  • 【C语言】VS调试技巧
  • 服务器虚拟化
  • 物理学基础精解【55】
  • 打卡第四天 P1081 [NOIP2012 提高组] 开车旅行
  • CSS伪类
  • 文心一言 VS 讯飞星火 VS chatgpt (363)-- 算法导论24.3 5题
  • 在线Html到Markdown转换器
  • 【Conda】Conda命令详解:高效更新与环境管理指南
  • Hive数仓操作(十七)
  • 集合框架03:Collection使用(2)
  • RabbitMQ入门1—queue参数之type
  • 国外电商系统开发-运维系统资产属性-命令执行功能
  • DINOv2: Learning Robust Visual Featureswithout Supervision
  • 代码随想录Day 62|Floyd 算法精讲、A \* 算法精讲 (A star算法),题目:97. 小明逛公园、127. 骑士的攻击