#include<stdio.h>
#include<stdlib.h>
typedef char Elemtype;
int length = 8;
char s[8] = {'A','B','C','D','E','F','G','H'};//测试数据
typedef struct DNode {Elemtype data;struct DNode* next;struct DNode* prior;
}DNode,*DLink;void Creatsingl(DLink &DL){//先创建单向循环链表,不带头结点DLink L;//用来尾插法插入结点的指针for (int i = 0; i < length; i++) {DLink P = (DLink)malloc(sizeof(DNode));//创建新节点P->data = s[i];P->next = NULL;if (i == 0) {//先将头指针指向第一个结点L = P;DL = P;}else {//尾插法加入L->next = P;L = L->next;}}L->next = DL;//头尾连接起来
}void Creatdouble(DLink& DL) {//改造单向循环链表为双向循环链表DLink P = DL;P->next->prior = P;//先将第二结点的前驱指针指向第一个结点P = P->next;while (P != DL) {P->next->prior = P;P = P->next;}
}int main() {DLink DL;Creatsingl(DL);//创建单向循环链表Creatdouble(DL);//改造单向循环链表为双向循环链表
}

单向循环链表改成双向循环链表相关推荐

  1. Change Unidirectional Association to Bidirectional(将单向关联改为双向关联)

    两个类都需要使用对方特性,但其间只有一个单向连接 重构:添加一个反向指针,并使修改函数能够同时更新两条连接 由哪个类负责控制关联关系.建议单个类来操控,因为这样就可以将所有处理关联关系的逻辑安置于一地 ...

  2. 双向循环链表c语言,双向循环链表的实现与使用

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 首先是节点的创建: 创建的时候就要将数据填充到节点中,所以需要传入一个data参数, 还需设置两个节点的地址,一个是前节点,一个是后节点 也就是setPr ...

  3. 【循环链表】数据结构——单向循环链表和双向循环链表操作笔记

    循环链表 一.单向循环链表 1.单向循环链表的节点 2.单向循环链表的结构 二.双向循环链表 1.双向循环链表示意图 2.双向循环链表节点设计 3.双向循环链表的一般性结构 4.双向循环链表头插法插入 ...

  4. 比特数据结构与算法(第二章收尾)带头双向循环链表的实现

    1.链表的分类 链表的分类 ① 单向或者双向 ② 带头或者不带头 ③ 循环或者非循环 常用的链表: 根据上面的分类我们可以细分出8种不同类型的链表,这么多链表我们一个个讲解这并没有意义.我们实际中最常 ...

  5. 【数据结构初阶】链表(下)——带头双向循环链表的实现

    目录 带头双向循环链表的实现 1.带头双向循环链表的节点类型 2.创建带头双向循环链表的节点 3.向带头双向循环链表中插入数据 <3.1>从链表尾部插入数据 <3.2>从链表头 ...

  6. 【链表】双向循环链表的实现

    前言 链表是一种物理存储结构上非连续.非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的链表的结构总共有8种,我们这里来进行带头双向循环链表的增删查改实现 双向循环链表的优势是什么? ...

  7. 【数据结构】双向链表(带头双向循环链表)——超详细代码

    文章目录 1. 双链表 1.1 前言 1.2 带头双向循环链表 2. 带头双向循环链表的实现 2.1 双向链表的定义声明 2.2 双向链表的初始化 2.3 释放双向链表 2.4 打印双向链表 2.5 ...

  8. 【数据结构】带头节点双向循环链表

    目录 顺序表和链表的区别 带头双向循环链表分析 带头双向循环链表结构: 创建一个节点 哨兵位头节点 打印链表中的值 在pos前插入 删除pos位置的节点 尾插 尾删 头插: 头删 链表元素查找 总代码 ...

  9. 实现简单的带头双向循环链表

    双向链表 1. 带头双向循环链表的定义 2. 带头双向循环链表的创建 3. 带头双向循环链表的增删改查 (1)头插头删 (2)尾插尾删 (3)pos位置的前插与删除 4.插入与删除改良 1. 带头双向 ...

最新文章

  1. 剑指offer 24:二叉搜索树的后序遍历序列
  2. 2020技术趋势报告-中文版
  3. 基于SSM实现校园失物招领系统
  4. 3.2.2 快速搭建你的第一个系统所,并进行迭代
  5. Js_cookie保存登录名
  6. python画函数图像要用到的模块_教你如何绘制数学函数图像——numpy和matplotlib的简单应用...
  7. js 用submit()方法提交表单,页面闪退问题以及解决方法
  8. 任正非:鸿蒙最快1年可媲美iOS;首例Apple Card用户遭盗刷;Firefox 69.0.3 发布 | 极客头条...
  9. Oracle如何使用PL/SQL调试存储过程
  10. 安卓自动滑屏脚本_【按键精灵】开发抖音全自动养号脚本!可实现自动滑屏
  11. android模拟器directx,DX千骑驱动器模拟器
  12. 电脑连接移动设备android驱动程序,手机连接电脑驱动程序下载汇总
  13. 安装排版软件latex
  14. 上交所、深交所、中登结算的接口文档及下载链接
  15. pycharm激活码永久有效2019年5月28日
  16. Verilog GPIO 模块设计
  17. java毕业生设计超市货品进销存系统前台计算机源码+系统+mysql+调试部署+lw
  18. 春夜宴诸从弟桃李园序 李白
  19. Python 打造微信群聊天机器人(带操作界面)
  20. 机器学习之金融信贷风控(二)申请评分卡中的数据预处理和特征衍生(未完待续)

热门文章

  1. codeforces 1181C
  2. 票据贴现和再贴现是什么
  3. 代码注入(web安全入门)
  4. 论述:企业开发微信小程序和APP应用有哪些差别
  5. linux非阻塞IO与阻塞IO的应用
  6. linux监测本机udp发动情况,Linux 下 TCP/UDP 端口测试及验证方法说明
  7. druid监控sql
  8. 新买的移动硬盘如何正确使用
  9. root什么意思?为什么要获取root权限?
  10. 发票识别+查验API 企业财税管理的一大利器