满意答案

这个字符串的输出,考虑到有正序和逆序,采用链表,可以考虑用双链表。这样输出效率会比较高。

建议用循环双链表(带头结点),方便程序处理,简化操作流程,步骤明晰,便于调试。

关键函数可分为:

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语言单链表存储字符串,用链表的形式存储一个字符串 按正序和逆序输出字符串(数据结构考试)...相关推荐

  1. 2019届vivo秋招笔试题【字符串排序】【链表奇数位正序偶数位逆序】【最长回文子串】

    字符串排序 1.题目描述 请对组字符串进行排序,字符串由大小写字母和数字组成,需要满足以下比较规则 1.长度不同时,长度较短在排前面 2.长度相同时,按照字典顺序排列(AaBb-Zz, 0-9顺序), ...

  2. java 正序a~z_2019届vivo秋招笔试题【字符串排序】【链表奇数位正序偶数位逆序】【最长回文子串】...

    字符串排序 1.题目描述 请对组字符串进行排序,字符串由大小写字母和数字组成,需要满足以下比较规则 1.长度不同时,长度较短在排前面 2.长度相同时,按照字典顺序排列(AaBb-Zz, 0-9顺序), ...

  3. 字符串逆序+单词逆序

    字符串逆序+单词逆序 文章目录 字符串逆序+单词逆序 一.字符串逆序 二.单词逆序 三.感谢以及交流 一.字符串逆序 问题描述: 输入一个字符串arr,将其内容颠倒过来,并输出. 数据范围0<l ...

  4. c语言将一个已知头结点的单链表逆序_C语言实现单链表逆序与逆序输出实例

    单链表的逆序输出分为两种情况,一种是只逆序输出,实际上不逆序:另一种是把链表逆序.本文就分别实例讲述一下两种方法.具体如下: 1.逆序输出 实例代码如下: #include #include #inc ...

  5. 链表逆序——就地逆序

    链表逆序 1.问题描述 给定一个带头结点的单链表,请将其逆序.即如果单链表原来为head->1->2->3->4->5->6->7,则逆序后变为head-&g ...

  6. c语言字符串正序反序连接输出,C语言中字符串实现正序与逆序实例详解

    C语言中字符串实现逆序实例详解 字符串逆序和正序的实现代码: #include #include #include #include #include /*定义*/ typedef struct no ...

  7. C语言基础02——控制语句。二分查找、随机数讲解、求自幂数、整数逆序、X图案打印、猜数字、公约数公倍数、素数

    目录 分支语句(选择结构) if语句 switch语句 循环语句 while循环 do-while循环 for循环 循环语句的练习 转向语句 goto语句 break语句 continue语句 ret ...

  8. 输入一个以回车结束的字符串,判断该字符串是否对称(正序与逆序相同,如aBc2cBa为对称字符串)

    编程思路一:将输入的字符串按照逆序存放到另一个数组中,比较两者是否相同,如是,则为对称字符串. #include<stdio.h> #include<string.h> int ...

  9. 怎么样去掉scratch中的字符串的第一个字符?/scratch巧妙去掉字符串数最开头0/字符串算法操作/字符串的逆序/变量逆序

    起因是一个朋友在群里问了一个问题:scratch中如何巧妙的去掉一串字符数最开头的0? 我想了一下好像没有什么好办法,当然如果这个字符串是纯数字,可以用下面这种方式去除第一个字符0. 首先我们省去判断 ...

最新文章

  1. 如何找回丢失的Vista系统“休眠”菜单
  2. JSON Web Tokens测试工具
  3. BUUCTF(pwn)starctf_2019_babyshell
  4. python 单例模式内存泄露_彻底搞懂Java内存泄露
  5. 2021年高考成绩查询陕西文科,2021年陕西高考文科二本分数线预测
  6. 2010年高教社杯全国大学生数学建模竞赛题目B题解析及层次分析法AHP在其中的应用
  7. 关于关闭Eclipse的控制台自动跳出
  8. 最小方差问题---------------给你出道题
  9. 买茶叶想到的哪个比较便宜 x1/y1 x2/y2 x代表多少钱 y代表 多少克 无聊的试炼...
  10. SPI(Service Provider Interface)机制
  11. 用C语言实现猜数字游戏
  12. 工业镜头、相机的结构、参数解释及选型指南
  13. ArcGIS模拟3D洪水
  14. Python操作excel基础
  15. 磁波刀和海扶刀的区别
  16. 怎么将将PDF图纸转换成CAD格式呢?
  17. 实现a标签中的各种点击(onclick)事件的方法
  18. 乌云内部网站漏洞扫描工具Extensible Web Attack Framework
  19. TP6框架--EasyAdmin学习笔记:Excel表单导入数据库
  20. 如何使用 PHP 发送 Web 推送通知

热门文章

  1. QVGA/HVGA/WVGA/FWVGA分辨率屏含义及大小//Android虚拟机分辨率
  2. 如何规划地域和可用区(相关定义和分析)
  3. Metricbeat部署指南
  4. chromium浏览器策略修改与定制
  5. TensorFlow中学习率
  6. 开一家小型的美容会所需要多少成本呢
  7. 惠普局域网共享打印机设置_HP打印机如何实现局域网跨网段的设置
  8. 【附源码】计算机毕业设计java养老院老人日常生活管理系统设计与实现
  9. android版cmd命令,android开发中的cmd命令
  10. java jsonresult_java web中统一结果返回封装类JsonResult