数据结构--双向循环链表实践
来源:互联网 发布:传奇盗号软件 编辑:程序博客网 时间:2024/06/03 06:46
问题描述:
要求实现用户输入一个数使得26个字母的排列发生变化,例如用户输入3,输出结果:
DEFGHIJKLMNOPQRSTUVWXYZABC
同时需要支持负数,例如用户输入-3,输出结果:
XYZABCDEFGHIJKLMNOPQRSTUVW
#include <stdio.h>#include <stdlib.h>#define OK 1#define ERROR 0typedef char ElemType;typedef int status;/*定义双向链表,前驱和后继*/typedef struct DualNode{ElemType data;struct DualNode *prior;struct DualNode *next;}DualNode,*DuLinkList;/*链表初始化*/status InitList(DuLinkList *L){DualNode *p,*q;int i;*L = (DuLinkList)malloc(sizeof(DualNode));if (!(*L)){return ERROR;}(*L)->next = (*L)->prior = NULL;p = (*L);//头结点for (i = 0; i < 26; i++)//p,q交替,实现初始化{q = (DualNode *)malloc(sizeof(DualNode));if (!q){return ERROR;}q->data = 'A'+i;q->prior = p;q->next = p->next;p->next = q;p = q;}p->next = (*L)->next;(*L)->next->prior = p;return 0;}void Caesar(DuLinkList *L, int i){if (i > 0){do{(*L) = (*L)->next;} while ( --i );}if (i < 0){(*L) = (*L)->next;do{(*L) = (*L)->prior;} while ( i++);}}int main(){DuLinkList L;int 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);}printf("\n");return 0;}
阅读全文
1 0
- 数据结构--双向循环链表实践
- 双向循环链表实践
- 数据结构-----双向循环链表
- 数据结构 -- 双向循环链表
- 数据结构--循环双向链表
- 数据结构(双向循环链表)
- 数据结构-双向循环链表
- 数据结构-双向循环链表
- 双向循环链表代码实践
- 小甲鱼 双向循环链表实践
- 双向循环链表之实践
- 双向循环链表实践练习
- 【数据结构】双向循环链表实现
- 数据结构课程设计_双向循环链表
- 数据结构之双向循环链表06
- 数据结构--双向非循环链表
- 数据结构之双向循环链表
- 数据结构通用双向循环链表实现
- 怎样用linux命令知道系统是ubuntu还是redhat或者其它的系统?
- UESTC
- SQL Server表中某些字段含有水平制表符、换行符、回车符、反斜杠的解决办法
- 总结一下linux下的用户管理
- Intel caffe 安装及用gpu训练即去掉CPU-Only的方法
- 数据结构--双向循环链表实践
- CodeForces
- Codeforce Round #384 (Div 2) C
- C++ 中字符输入(cin,getline,cin.get)
- 向LinearLayout布局中添加多个TableLayout布局,页面仅显示第一个TableLayout的问题
- html5权威指南pdf
- 第四节 CSS的三大特性
- ajax提交表单form,form包含文件上传
- HDU1069-LIS变形-Monkey and Banana