双向循环链表实践练习
来源:互联网 发布:食品网络营销策划方案 编辑:程序博客网 时间:2024/06/05 15:34
程序输入一个数,会使26个英文字母的顺序发生变化,比如原来为 ABCDEFGHIJKLMNUPQRSTUVWXYZ 输入3 字符串变为 DEFGHIJKLMNOPQRSTUVWXYZABC 还可以输入负数 比如-5 VWXYZABCDEFGHIJKLMNOPQRXTU
程序代码如下:
#include<stdio.h>#include<stdlib.h>#define OK 1//宏定义 OK代表1 表示成功 #define ERROR 0//EEEOR代表失败 typedef char ElemType;//typedef 使数据类型转换名字 typedef int Status;typedef struct DualNode//定义链表 {ElemType data;//定义data为ELemType也就是char类型 struct DualNode *prior;//定义前驱, struct(定义符号) DualNode(结构体名) struct DualNode *next;//定义后继 } DualNode,*DuLinkList;//增加名字 Status InitList(DuLinkList *L)//初始化链表 构建二十六个字母的链表 {DualNode *p,*q;//定义指针变量, p为链表中最后一个元素, q为添加的新元素 int i;//控制循环次数 *L=(DuLinkList)malloc(sizeof(DualNode));//先给头结点分配地址 if(!(*L))//分配失败,退出 return ERROR;(*L)->next=(*L)->prior=NULL;//初始化 ,头结点的前驱和后继都为空 p=(*L);//先将p放在头结点上 for(i=0;i<26;i++)//开始进行循环 {q=(DualNode *)malloc(sizeof(DualNode));//给每一个新添加的元素分配空间 if(!q)return ERROR;q->data='A'+i;//利用i对添加的元素进行赋值 q->prior=p;//q的前驱指向p q->next=p->next;//q的后驱指向p的后驱 (这一步主要是因为q还没有下一个元素,所以先借用p的后驱来代替,也呼应了后面 p->next=q;//p的后驱指向q p=q;//进行循环替代,p重新成为链表的最后一个元素 }p->next=(*L)->next;//循环结束,进行首尾相连,空出头结点 (*L)->next->prior=p;return OK;}void Cassar(DuLinkList *L,int i)//定义字符串改变函数 {if(i>0)//进行头结点转换,因为是循环链表,所以可以赋数比较大的值 {do{(*L)=(*L)->next;}while(--i);}if(i<0){do{(*L)=(*L)->next;}while(++i);}}int main(){DuLinkList L;int i;while(1){InitList(&L);printf("请输入一个整数(输入0结束):");scanf("%d",&i);if(i==0)break; printf("\n");Cassar(&L,i);for(i=0;i<26;i++)//进行输出 {L=L->next;printf("%c",L->data);}printf("\n\n"); }}
阅读全文
0 0
- 双向循环链表实践练习
- 双向循环链表实践
- 第二次练习-双向循环链表
- 双向循环链表代码实践
- 小甲鱼 双向循环链表实践
- 双向循环链表之实践
- 数据结构--双向循环链表实践
- 小甲鱼双向循环链表实践---错误更正
- 双向循环链表
- 双向循环链表
- 双向循环链表
- 双向循环链表
- 双向循环链表
- 双向循环链表
- 双向循环链表
- 双向循环链表
- 双向循环链表
- 双向循环链表
- 自定义View笔记
- 156个Python网络爬虫资源,妈妈再也不用担心你找不到资源!
- 必须知道的八大种排序算法【java实现】(二) 选择排序,插入排序,希尔算法【详解】
- Cookie和Session的作用和工作原理
- CI源码之加载使用config文件的几种方式
- 双向循环链表实践练习
- C# 1读写Excel 2创建文件读写入txt
- pip install mysql-python 提示myql_config not found
- ACM中遇见的各类问题
- 暴力破解几何问题
- 8月9日云栖精选夜读:大数据时代,如何构建国家地质基础数据更新体系
- Oracle数据库迁移的几种方式
- 线性表的顺序储存结构 初始化、查找、删除、插入
- HDOJ1016 Prime Ring Problem (DFS,回溯)