双向循环链表实现26个英文字母的左右移位完整C代码
2014-11-19 12:46
369 查看
/* 实现26个英文字母的左右移位 */ #include<stdio.h> #include<stdlib.h> typedef struct node { char data; struct node *prior; struct node *next; }Node, *DualCirLink; DualCirLink CreatLink() { DualCirLink l = (DualCirLink)malloc(sizeof(Node)); l -> next = l; l -> prior = l; l -> data = 'a'; DualCirLink p, q; q = l; for( int i=1; i<26; i++ ) { p = (DualCirLink)malloc(sizeof(Node)); p -> data = 'a' + i; p -> prior = q; q -> next = p; q = p; q -> next = l; l -> prior = q; } return l; } DualCirLink ShiftLink( DualCirLink l , int n ) { DualCirLink p = l; int i; if( n>0 ) for( i=0; i<n; i++ ) p = p -> next; else for( i=0; i<(-n); i++ ) p = p -> prior; return p; } void ShowLink( DualCirLink l ) { DualCirLink p = l; while( p->next != l ) { printf("%c ", p->data); p = p -> next; } printf("%c\n", p->data); } void DeleteLink( DualCirLink l ) { DualCirLink p, q; p = q = l->next; while( p != l ) { p = q->next; free(q); q = p; } free(p); } void main() { DualCirLink l = CreatLink(); ShowLink( l ); DualCirLink p; int n; printf("请输入移位的位数: "); scanf("%d", &n); p = ShiftLink( l, n ); ShowLink( p ); DeleteLink ( p ); }
相关文章推荐
- 线性表_双向循环链表(Caesar加密变换结点顺序 代码实现 )
- C++实现在文件中输入26个英文字母
- 利用汇编语言编程实现在屏幕上显示A-Z26个大写英文字母。
- 用正则表达式限制文本框只能输入数字,小数点,英文字母,汉字等各类代码
- FormatRemoteUrl函数之asp实现格式化成当前网站完整的URL-将相对地址转换为绝对地址的代码
- 实现窗体淡入淡出的完整代码
- GB2312 字符串,单字节英文,双字节中文的完整类实现
- 26个英文字母的爱情解释
- 实现高效的数据库连接池(附带完整代码C#和Java实现)
- (三)边做边发---产销系统---详细设计--代码实现--更新时间2007/8/1--提供整站完整源代码下载
- Dropdownlist动态绑定26个英文字母
- C#实现汉字机内码高低字节表示或英文字母和数字的ASCII表示
- 26个英文字母在无线电通讯时的读法
- javascript实现的左右选择框效果代码
- javascript实现的左右选择框效果代码
- FormatRemoteUrl函数之asp实现格式化成当前网站完整的URL-将相对地址转换为绝对地址的代码
- hchxxzx--》一个实现图片上传/产生缩略图/在上传图片上写字功能的完整页面代码
- 以二进制形式将图片保存到数据库,用存诸过程实现(完整代码+sql语句)
- ASP.NET2.0中GRIDVIEW控件完整代码实现模版列排序!
- AspJpeg组件实现远程图片保存的实例完整代码