版权声明:本文为博主原创文章。未经博主同意不得转载。

vasttian https://blog.csdn.net/u012860063/article/details/28281631

转载请注明出处:http://blog.csdn.net/u012860063

问题:设单链表中存放n个字符,试设计一个算法,使用栈推断该字符串是否中心对称,如xyzzyx即为中心对称字符串。

代码例如以下:
#include<cstdio>
#include<cstdlib>
#include<cstring>
#define LEN sizeof(struct node)
#define MAX 147
struct node
{char cc;struct node *next;
};
int judge(struct node *head,int len)
{struct node *top,*p1,*p2;top = NULL;p1 = head->next;for(int i = 0 ; i < len/2 ; i++){p2 = (struct node *)malloc(LEN);p2->cc = p1->cc;p2->next = top;top = p2;p1 = p1->next;}if(len%2 == 1)p1 = p1->next;p2 = top;for(i = 0 ; i < len/2 ; i++){if(p2->cc != p1->cc)break;top = p2->next;p1 = p1->next;p2 = top;}if(!top) return 1;else return 0;
}int main()
{int n=0;char str[MAX];struct node *head,*p;head = p = (struct node *)malloc(LEN);head->next = p->next = NULL;printf("亲、请输入一个字符串:\n");gets(str);int len = strlen(str);while(n < len && str[0] != '\n'){p = (struct node *)malloc(LEN);p->cc = str[n];p->next = head->next;head->next = p;n++;}int flag = judge(head,len);if(flag)printf("%s是一个回文!\n",str);elseprintf("%s不是一个回文!\n",str);return 0;
}

转载于:https://www.cnblogs.com/xfgnongmin/p/10742333.html

设单链表中存放n个字符,试设计一个算法,使用栈推断该字符串是否中心对称...相关推荐

  1. 数据结构例16.试设计一个算法, 使得在一个有序的单链表中插入一个元素后仍然有序。

    /* 16.试设计一个算法, 使得在一个有序的单链表中插入一个元素后仍然有序. */ # include <iostream> # include <stdlib.h> # i ...

  2. 数据结构:试设计一个算法,改造一个带表头结点的双向链表,所有结点的原有次序保持在各个结点的右链域rLink中,并利用左链域ILink把所有结点按照其值从小到大的顺序连接起来

    题目 试设计一个算法,改造一个带表头结点的双向链表,所有结点的原有次序保持在各个结点的右链域rLink中,并利用左链域ILink把所有结点按照其值从小到大的顺序连接起来 分析 Template < ...

  3. 写一个算法交换单链表中p所指结点与其后继结点-21算法题

    本题为算法题,交换的是结点,而不是结点的值 注意题目是交换结点,不是交换结点的值. 设q为1,p为2,r为3,r->next为4.原来为1234 1指向3,2指向4,3指向2.最终顺序为1324 ...

  4. 无头结点单链表的逆置_从无头单链表中删除节点及单链表的逆置

    题目: 假设有一个没有头指针的单链表.一个指针指向此单链表中间的一个节点(非第一个节点, 也非最后一个节点).请将该节点从单链表中删除. 解答: 典型的"狸猫换太子", 若要删除该 ...

  5. java递归单链表查找中间元素_《数据结构与算法——C语言描述》答案 3.11 查找单链表中的特定元素(递归)...

    转载请注明出处:http://blog.csdn.net/xdz78 #include #include //查找单链表中的特定元素,<数据结构与算法--c语言描述> 3.11 答案 in ...

  6. 数组分成两组差值最小 python_数组中的数分为两组,让给出一个算法,使得两个组的和的差的绝对值最小,数组中的数的取值范围是0x100,元素个数也是大于0, 小于100 。...

    比如a[]={2,4,5,6,7},得出的两组数{2,4,6}和{5,7},abs(sum(a1)-sum(a2))=0: 比如{2,5,6,10},abs(sum(2,10)-sum(5,6))=1 ...

  7. 【一元多项式算法】设一个一元多项式采用带头结点的单链表存储,所有结点 按照升幂方式链接。设计一个算法,求两个多项式 A 和 B 的乘积,结果多项式 C 存放在新辟的空间中。

    [一元多项式算法]设一个一元多项式采用带头结点的单链表存储,所有结点 按照升幂方式链接.设计一个算法,求两个多项式 A 和 B 的乘积,结果多项式 C 存放在新辟的空间中. #include<s ...

  8. 删除单链表中的重复节点(c语言版本)

    这是一道经典的面试题,下面是我的研究和举一反三,特整理如下: 分为三种情形: (1)删除有序链表的重复节点,重复节点一个都不留 (2)删除有序链表的重复节点,重复节点只留一个 (3)删除无序链表的重复 ...

  9. 【 C 】在单链表中插入一个新节点的尝试(一)

    根据<C和指针>中讲解链表的知识,记录最终写一个在单链表中插入一个新节点的函数的过程,这个分析过程十分的有趣,准备了两篇博文,用于记录这个过程. 链表是以结构体和指针为基础的,所以结构体和 ...

最新文章

  1. python一个字母红了_Python练习:最后一个字母/第一个字母
  2. 极验行为验证的使用方法
  3. pytorch 指定卡1_[原创][深度][PyTorch] DDP系列第一篇:入门教程
  4. 微信小程序编译 tunneling socket could not be established,cause=connect ······
  5. CTFshow 文件上传 web165
  6. python中文显示不出来_Python数据可视化利器Matplotlib,无法显示中文,怎么办?...
  7. The Linux device model
  8. 你的手机上未安装应用程序”的解决方案
  9. 线程安全退出 VS PostMessage,SendMessage的区别
  10. 小程序未来将有广阔的发展前景
  11. SQL Server死锁诊断--同一行数据在不同索引操作下引起的死锁
  12. 在java中添加源_关于Java:如何在Android Studio中添加链接的源文件夹?
  13. 诗与远方:无题(七十九)- 望红云而作
  14. dataTransfer对象
  15. CSS3 box-shadow实现纸张的曲线投影效果
  16. CSS3属性transform详解之(旋转:rotate,缩放:scale,倾斜:skew,移动:translate)
  17. 数组及对象几种遍历方式对比
  18. 软件工程个人作业01 100以内四则运算自动答题系统(含整数和真分数)
  19. java设计模式_抽象工厂
  20. 计算机三级学科及代码,《学科分类及代码》.doc

热门文章

  1. jms mysql_JMS学习九(ActiveMQ的消息持久化到Mysql数据库)
  2. 如何使用 SSH 控制连接 Windows 服务器
  3. vue mint-ui 弹出框
  4. java的内存模型--jmm
  5. fileinput 加 ftp 加 nginx 加 SpringBoot上传文件
  6. TextView设置缩略显示
  7. [HNOI 2001]求正整数
  8. jquery通过attr取html里自定义属性原来这么方便啊
  9. (模板)网页游戏用的“内容区”的“图赏影音”模板
  10. 在Google Maps 上点击标签后显示说明