c语言单链表存储字符串,用链表的形式存储一个字符串 按正序和逆序输出字符串(数据结构考试)...
满意答案
这个字符串的输出,考虑到有正序和逆序,采用链表,可以考虑用双链表。这样输出效率会比较高。
建议用循环双链表(带头结点),方便程序处理,简化操作流程,步骤明晰,便于调试。
关键函数可分为:
1,结构的定义
2,初始化链表
3,输出(正序,逆序)
4,释放链表
5,主函数
以下C语言代码在VC6.0中编译通过:
#include
#include
#include
#include
#include
/*定义*/
typedef struct node
{
char c;
struct node *llink,*rlink;
}stud;
/*建立链表*/
stud * creat(void)
{
stud *p,*h,*s;
char a;
if((h=(stud *)malloc(sizeof(stud)))==NULL)
{
printf("不能分配内存空间!");
exit(0);
}
h->c = 0;
h->llink=NULL;
h->rlink=NULL;
p=h;
while(1)
{
a = getchar();
if(a=='
')
break;
if((s= (stud *) malloc(sizeof(stud)))==NULL)
{
printf("不能分配内存空间!");
exit(0);
}
p->rlink=s;
s->c =a;
s->llink=p;
s->rlink=NULL;
p=s;
}
h->llink=s;
p->rlink=h;
return(h);
}
/*正序*/
void print1(stud *h)
{
stud *p;
p=h->rlink;
printf("字符串(正序):");
while(p!=h)
{
printf("%c",p->c);
p=p->rlink;
}
printf("
");
}
/*逆序*/
void print2(stud *h)
{
stud *p;
p=h->llink;
printf("字符串(逆序):");
while(p!=h)
{
printf("%c",p->c);
p=p->llink;
}
printf("
");
}
/*释放*/
void free_stud(stud *h)
{
stud *p,*q;
p=h->llink;
while(p!=h)
{
q=p;
p=p->llink;
free(q);
}
free(h);
}
/*主函数*/
int main()
{
stud *head=NULL;
head=creat();
print1(head);
print2(head);
free_stud(head);
return 0;
}
00分享举报
c语言单链表存储字符串,用链表的形式存储一个字符串 按正序和逆序输出字符串(数据结构考试)...相关推荐
- 2019届vivo秋招笔试题【字符串排序】【链表奇数位正序偶数位逆序】【最长回文子串】
字符串排序 1.题目描述 请对组字符串进行排序,字符串由大小写字母和数字组成,需要满足以下比较规则 1.长度不同时,长度较短在排前面 2.长度相同时,按照字典顺序排列(AaBb-Zz, 0-9顺序), ...
- java 正序a~z_2019届vivo秋招笔试题【字符串排序】【链表奇数位正序偶数位逆序】【最长回文子串】...
字符串排序 1.题目描述 请对组字符串进行排序,字符串由大小写字母和数字组成,需要满足以下比较规则 1.长度不同时,长度较短在排前面 2.长度相同时,按照字典顺序排列(AaBb-Zz, 0-9顺序), ...
- 字符串逆序+单词逆序
字符串逆序+单词逆序 文章目录 字符串逆序+单词逆序 一.字符串逆序 二.单词逆序 三.感谢以及交流 一.字符串逆序 问题描述: 输入一个字符串arr,将其内容颠倒过来,并输出. 数据范围0<l ...
- c语言将一个已知头结点的单链表逆序_C语言实现单链表逆序与逆序输出实例
单链表的逆序输出分为两种情况,一种是只逆序输出,实际上不逆序:另一种是把链表逆序.本文就分别实例讲述一下两种方法.具体如下: 1.逆序输出 实例代码如下: #include #include #inc ...
- 链表逆序——就地逆序
链表逆序 1.问题描述 给定一个带头结点的单链表,请将其逆序.即如果单链表原来为head->1->2->3->4->5->6->7,则逆序后变为head-&g ...
- c语言字符串正序反序连接输出,C语言中字符串实现正序与逆序实例详解
C语言中字符串实现逆序实例详解 字符串逆序和正序的实现代码: #include #include #include #include #include /*定义*/ typedef struct no ...
- C语言基础02——控制语句。二分查找、随机数讲解、求自幂数、整数逆序、X图案打印、猜数字、公约数公倍数、素数
目录 分支语句(选择结构) if语句 switch语句 循环语句 while循环 do-while循环 for循环 循环语句的练习 转向语句 goto语句 break语句 continue语句 ret ...
- 输入一个以回车结束的字符串,判断该字符串是否对称(正序与逆序相同,如aBc2cBa为对称字符串)
编程思路一:将输入的字符串按照逆序存放到另一个数组中,比较两者是否相同,如是,则为对称字符串. #include<stdio.h> #include<string.h> int ...
- 怎么样去掉scratch中的字符串的第一个字符?/scratch巧妙去掉字符串数最开头0/字符串算法操作/字符串的逆序/变量逆序
起因是一个朋友在群里问了一个问题:scratch中如何巧妙的去掉一串字符数最开头的0? 我想了一下好像没有什么好办法,当然如果这个字符串是纯数字,可以用下面这种方式去除第一个字符0. 首先我们省去判断 ...
最新文章
- 如何找回丢失的Vista系统“休眠”菜单
- JSON Web Tokens测试工具
- BUUCTF(pwn)starctf_2019_babyshell
- python 单例模式内存泄露_彻底搞懂Java内存泄露
- 2021年高考成绩查询陕西文科,2021年陕西高考文科二本分数线预测
- 2010年高教社杯全国大学生数学建模竞赛题目B题解析及层次分析法AHP在其中的应用
- 关于关闭Eclipse的控制台自动跳出
- 最小方差问题---------------给你出道题
- 买茶叶想到的哪个比较便宜 x1/y1 x2/y2 x代表多少钱 y代表 多少克 无聊的试炼...
- SPI(Service Provider Interface)机制
- 用C语言实现猜数字游戏
- 工业镜头、相机的结构、参数解释及选型指南
- ArcGIS模拟3D洪水
- Python操作excel基础
- 磁波刀和海扶刀的区别
- 怎么将将PDF图纸转换成CAD格式呢?
- 实现a标签中的各种点击(onclick)事件的方法
- 乌云内部网站漏洞扫描工具Extensible Web Attack Framework
- TP6框架--EasyAdmin学习笔记:Excel表单导入数据库
- 如何使用 PHP 发送 Web 推送通知
热门文章
- QVGA/HVGA/WVGA/FWVGA分辨率屏含义及大小//Android虚拟机分辨率
- 如何规划地域和可用区(相关定义和分析)
- Metricbeat部署指南
- chromium浏览器策略修改与定制
- TensorFlow中学习率
- 开一家小型的美容会所需要多少成本呢
- 惠普局域网共享打印机设置_HP打印机如何实现局域网跨网段的设置
- 【附源码】计算机毕业设计java养老院老人日常生活管理系统设计与实现
- android版cmd命令,android开发中的cmd命令
- java jsonresult_java web中统一结果返回封装类JsonResult