1.有图有真相

2.代码实现

//Caesar Password with DualLinkList#include <stdio.h>
#include <stdlib.h>#define OK 1
#define ERROR 0typedef char ElemType;           //双向循环链表元素类型
typedef int  Stutas;  typedef struct DualNode
{ElemType data;struct DualNode *prior;    //前驱结点指针struct DualNode *next;     //后继结点指针
}DualNode, *DualLinkList;        //结点元素 | 结点指针/****************************************************/
/*函数名称:InitList -初始化双向循环链表               */
/*参    数:*L       -指向链表的头指针                */
/*函数功能:生成双向循环链表ABCDEFG....Z(Z指向A...)    */
/****************************************************/
Stutas InitList(DualLinkList *L) //初始化链表
{DualNode *p, *q;           //定义循环使用的临时结点int i;*L = (DualLinkList)malloc(sizeof(DualNode));  //链表头指针if (!(L))   return ERROR;(*L)->next = (*L)->prior = NULL;p = (*L);for (i = 0; i < 26; i++)    //英文字母26个{q = (DualNode*)malloc(sizeof(DualNode));if (!q)   return ERROR;q->data = 'A' + i;q->prior = p;q->next = p->next;    //此步,q->next=NULLp->next = q;p = q;}p->next = (*L)->next;      //最后一个结点的next指向头结点的next,即指向第一个结点(*L)->next->prior = p;     //头结点的next节点(即第一个结点)的前驱结点 指向 尾结点return OK;
}/****************************************************/
/*函数名称:Caesar -凯撒加密方法                      */
/*参    数:*L  -指向链表的头指针                     */
/*         i-链表的头指针指向的位置,即作为首节点的标号 */
/*函数功能:移动结点位置,以指定位置结点作为首结点      */
/*         如:i=3时,ABCD...Z变成 DEF...ZABC        */
/*         即原来A位置元素变成D,B变成E...Z变成C       */
/****************************************************/
void Caesar(DualLinkList *L, int i)
{if (i > 0){do {(*L) = (*L)->next;} while (--i);}if (i < 0){do{(*L) = (*L)->next;} while (++i);}}int main()
{DualLinkList L;             //定义双向循环链表Lint i, n;InitList(&L);               //初始化链表printf("请输入一个整数:");scanf("%d", &n);printf("\n");Caesar(&L, n);              //变化顺序加密for (i = 0; i < 26; i++)    //显示结果{L = L->next;printf("%c", L->data);}return 0;
}

3.测试结果


线性表_双向循环链表(Caesar加密变换结点顺序 代码实现 )相关推荐

  1. C语言线性表之双向循环链表

    #include<stdio.h> #include<stdlib.h>/* 结构体:双向循环链表 */ typedef struct DuLNode{int data;str ...

  2. C语言数据结构线性表上机实验报告,数据结构实验报告实验一线性表_图文

    数据结构实验报告实验一线性表_图文 更新时间:2017/2/11 1:23:00  浏览量:763  手机版 数据结构实验报告 实验名称: 实验一 线性表 学生姓名: 班 级: 班内序号: 学 号: ...

  3. std::list 循环删除指针_数据结构_006_线性表_循环链表

    循环链表   单向链表只有一个指针,指向下一个元素的地址.所以单向链表只能向后遍历,不能回头.   双向链表有两个指针,分别指向该结点的直接前驱和直接后驱,所以双向链表可以向前遍历,也可以向后遍历,可 ...

  4. java 双向链表循环_双向循环链表的Java版本实现

    1.单项循环列表 单向循环链表是单链表的另一种形式,其结构特点是链表中最后一个结点的指针不再是结束标记,而是指向整个链表的第一个结点,从而使单链表形成一个环.和单链表相比,循环单链表的长处是从链尾到链 ...

  5. Java数据结构与算法_线性表_顺序表与链表

    文章目录 线性表 顺序表 顺序表API设计 顺序表的代码实现 链表 单向链表 双向链表 总结 线性表 概述 线性表是最基本.最简单.也是最常用的一种数据结构. 一个线性表是n个具有相同特性的数据元素的 ...

  6. mysql 线性表_数据结构之线性表

    概要 参考<大话数据结构>,把常用的基本数据结构梳理一下. 线性表 定义 线性表(List):零个或多个数据元素的有限序列. 若将线性表记为 \((a_1, \cdots, a_{i-1} ...

  7. 【数据结构】线性表之双向链式线性表

    2019独角兽企业重金招聘Python工程师标准>>> public class DuLinkList<T> {// 定义一个内部类Node,Node实例代表链表的节点p ...

  8. mysql 线性表_数据结构-线性表之顺序表

    线性表 (1)逻辑结构和物理结构 物理结构:数据元素在内存中真实的存放次序,有可能是连续存放的,也可能是散落于内存里. 逻辑结构:为了便于描述数据元素之间的关系,我们想象出数据之间应该有某种的对应关系 ...

  9. 卡方线性趋势检验_双向有序分类资料线性趋势检验的几个问题商榷

    中国卫生统计 2011年 4月第 28卷第 2期 双 向有序分类资料线性趋势检验的几个 问题商榷 唐 启义 陈惠君 董 玉恒 国内相关文献¨ 在介绍双向有序列联表资料线 性趋势检验时,均将列联表 Pe ...

  10. mysql 线性表_线性表之顺序存储,基本操作

    /* 九大基本操作(不同的存储结构实现的代码不同) 此处用一维数组的动态分配: InitList(&L);//初始化表, Length(L); LocateElem(L,e); GetElem ...

最新文章

  1. tomcat和nginx的使用
  2. 吐血,经过4个小时,终于发现这个可以解决虚拟机ubuntu不能联网的问题
  3. python与或非位运算_python位运算
  4. ​【文末有福利】股票跨度——真实世界的算法
  5. [linux学习] 字符界面linux安装vmtools
  6. 大数据-操作HDFS的基本命令
  7. druid最大连接数oracle,性能超过DRUID的最强数据库连接池——HikariCP相关配置及简单示例...
  8. 左侧固定 右侧自适应
  9. 关于 Pycharm专业版 安装教程,简单好用
  10. 历史上最伟大的12位程序员
  11. 知识点二十五:启发式搜索算法——A*算法
  12. php控制表格颜色,php – 表格列的背景颜色
  13. nyoj-1273 宣传墙
  14. pandas 用均值填充缺失值NaN —— fillna 方法解析
  15. UML设计——网上信用卡管理系统分析与设计(新手)
  16. 【技术分享】美团外卖的商业变现的技术思考和实践
  17. 面对找不到工作的困难,小伙选择创业开酒吧,月收入竟达到了6万
  18. sqlsever2019:控制流全解
  19. 颜色混合opengl
  20. Cloudways托管平台简化了网站托管体验

热门文章

  1. Java8 Base64
  2. 类似于input输入框placeholder的效果,兼容ie8
  3. webapp之路--之query media
  4. 集成计划排程计划以及管控体系的几个特征
  5. 驗證類javascript
  6. jQuery设置iframe的高度
  7. Hibernate之复合主键映射
  8. 全国高校安徽考区计算机,关于做好2021年上半年全国高校(安徽考区)计算机水平考试报名工作的通知...
  9. 内核aio_IO模型_NIO_AIO
  10. python操作数据库之删除数据