设单链表中存放n个字符,试设计一个算法,使用栈推断该字符串是否中心对称...
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个字符,试设计一个算法,使用栈推断该字符串是否中心对称...相关推荐
- 数据结构例16.试设计一个算法, 使得在一个有序的单链表中插入一个元素后仍然有序。
/* 16.试设计一个算法, 使得在一个有序的单链表中插入一个元素后仍然有序. */ # include <iostream> # include <stdlib.h> # i ...
- 数据结构:试设计一个算法,改造一个带表头结点的双向链表,所有结点的原有次序保持在各个结点的右链域rLink中,并利用左链域ILink把所有结点按照其值从小到大的顺序连接起来
题目 试设计一个算法,改造一个带表头结点的双向链表,所有结点的原有次序保持在各个结点的右链域rLink中,并利用左链域ILink把所有结点按照其值从小到大的顺序连接起来 分析 Template < ...
- 写一个算法交换单链表中p所指结点与其后继结点-21算法题
本题为算法题,交换的是结点,而不是结点的值 注意题目是交换结点,不是交换结点的值. 设q为1,p为2,r为3,r->next为4.原来为1234 1指向3,2指向4,3指向2.最终顺序为1324 ...
- 无头结点单链表的逆置_从无头单链表中删除节点及单链表的逆置
题目: 假设有一个没有头指针的单链表.一个指针指向此单链表中间的一个节点(非第一个节点, 也非最后一个节点).请将该节点从单链表中删除. 解答: 典型的"狸猫换太子", 若要删除该 ...
- java递归单链表查找中间元素_《数据结构与算法——C语言描述》答案 3.11 查找单链表中的特定元素(递归)...
转载请注明出处:http://blog.csdn.net/xdz78 #include #include //查找单链表中的特定元素,<数据结构与算法--c语言描述> 3.11 答案 in ...
- 数组分成两组差值最小 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 ...
- 【一元多项式算法】设一个一元多项式采用带头结点的单链表存储,所有结点 按照升幂方式链接。设计一个算法,求两个多项式 A 和 B 的乘积,结果多项式 C 存放在新辟的空间中。
[一元多项式算法]设一个一元多项式采用带头结点的单链表存储,所有结点 按照升幂方式链接.设计一个算法,求两个多项式 A 和 B 的乘积,结果多项式 C 存放在新辟的空间中. #include<s ...
- 删除单链表中的重复节点(c语言版本)
这是一道经典的面试题,下面是我的研究和举一反三,特整理如下: 分为三种情形: (1)删除有序链表的重复节点,重复节点一个都不留 (2)删除有序链表的重复节点,重复节点只留一个 (3)删除无序链表的重复 ...
- 【 C 】在单链表中插入一个新节点的尝试(一)
根据<C和指针>中讲解链表的知识,记录最终写一个在单链表中插入一个新节点的函数的过程,这个分析过程十分的有趣,准备了两篇博文,用于记录这个过程. 链表是以结构体和指针为基础的,所以结构体和 ...
最新文章
- python一个字母红了_Python练习:最后一个字母/第一个字母
- 极验行为验证的使用方法
- pytorch 指定卡1_[原创][深度][PyTorch] DDP系列第一篇:入门教程
- 微信小程序编译 tunneling socket could not be established,cause=connect ······
- CTFshow 文件上传 web165
- python中文显示不出来_Python数据可视化利器Matplotlib,无法显示中文,怎么办?...
- The Linux device model
- 你的手机上未安装应用程序”的解决方案
- 线程安全退出 VS PostMessage,SendMessage的区别
- 小程序未来将有广阔的发展前景
- SQL Server死锁诊断--同一行数据在不同索引操作下引起的死锁
- 在java中添加源_关于Java:如何在Android Studio中添加链接的源文件夹?
- 诗与远方:无题(七十九)- 望红云而作
- dataTransfer对象
- CSS3 box-shadow实现纸张的曲线投影效果
- CSS3属性transform详解之(旋转:rotate,缩放:scale,倾斜:skew,移动:translate)
- 数组及对象几种遍历方式对比
- 软件工程个人作业01 100以内四则运算自动答题系统(含整数和真分数)
- java设计模式_抽象工厂
- 计算机三级学科及代码,《学科分类及代码》.doc
热门文章
- jms mysql_JMS学习九(ActiveMQ的消息持久化到Mysql数据库)
- 如何使用 SSH 控制连接 Windows 服务器
- vue mint-ui 弹出框
- java的内存模型--jmm
- fileinput 加 ftp 加 nginx 加 SpringBoot上传文件
- TextView设置缩略显示
- [HNOI 2001]求正整数
- jquery通过attr取html里自定义属性原来这么方便啊
- (模板)网页游戏用的“内容区”的“图赏影音”模板
- 在Google Maps 上点击标签后显示说明