一道数据结构题,设单链表中存放着n个字符,试编写算法,判断该字符串是否有中心对称关系。

运用栈来设计算法,输入输出数据示例:输入:2//说明有n组测试数据xyzyzxyzxy输出:YN//若有对称关系则输出Y,若无则输出N... 运用栈来设计算法,输入输出数据示例:
输入:
2 //说明有n组测试数据
xyzyz
xyzxy
输出:
Y
N //若有对称关系则输出Y,若无则输出N
展开
 我来答
四舍五不入6
高粉答主

2020-02-12 · 醉心答题,欢迎关注
知道答主
回答量:147
采纳率:100%
帮助的人:2.1万
展开全部

可以参考下面的代码:

public static void main(String[] args) {

String str = "abcfcbs";

boolean flag = true;

char[] chs = str.toCharArray();

Stack s = new Stack();

int size = chs.length;

int mid = size/2;

int l = size%2;

for(int i = 0;i<mid;i++){

s.push(chs[i]);

}

int j = 0;

if(l == 0)

j = mid;

else

j = mid+1;

for(;j<size;j++){

if(!s.pop().toString().equals(String.valueOf(chs[j])))

flag = false;

}

if(flag)

System.out.print("Y");

else

System.out.print("N");

}

扩展资料:

常用的数据结构,在计算机科学的发展过程中,数据结构也随之发展,程序设计中常用的数据结构包括如下几个:

数组(Array)

数组是一种聚合数据类型,它是将具有相同类型的若干变量有序地组织在一起的集合。

栈( Stack)

栈是一种特殊的线性表,它只能在一个表的一个固定端进行数据结点的插入和删除操作。栈按照后进先出的原则来存储数据,也就是说,先插入的数据将被压入栈底,最后插入的数据在栈顶,读出数据时,从栈顶开始逐个读出。

队列(Queue)

队列和栈类似,也是一种特殊的线性表。和栈不同的是,队列只允许在表的一端进行插入操作,而在另一端进行删除操作。

参考资料来源:百度百科-数据结构 (计算机存储、组织数据方式)

光点科技
2023-08-15 广告
通常情况下,我们会按照结构模型把系统产生的数据分为三种类型:结构化数据、半结构化数据和非结构化数据。结构化数据,即行数据,是存储在数据库里,可以用二维表结构来逻辑表达实现的数据。最常见的就是数字数据和文本数据,它们可以某种标准格式存在于文件... 点击进入详情页
本回答由光点科技提供
乘风劫
推荐于2017-11-24 · TA获得超过204个赞
知道小有建树答主
回答量:150
采纳率:0%
帮助的人:113万
展开全部
这个简单啊 首先对输入的字符串进行处理 比如获得它的长度 中点位子 偶数就各半 奇数 就中点去掉 首先前半的字符入栈 过中点后拿后面的字符一个个和栈里拿出来的比较 如果有不同的就输出n 一一对应 如果栈里没数据了 且最后相同 则可以输出Y 其他的情况都可以直接跳出输出N
追问
额,那个,能写下源代码么,我有思路但是写不出来。。
追答
public static void main(String[] args) {
String str = "abcfcbs";//测试字符串
boolean flag = true;//对称标志
char[] chs = str.toCharArray();//将字符串转为字符数组
Stack s = new Stack();//栈
int size = chs.length;//计算字符串总长度
int mid = size/2;//计算中点
int l = size%2;//判读奇数偶数l为0则是偶数l为1则为奇数
for(int i = 0;i<mid;i++){
s.push(chs[i]);//将前半字符压栈
}
int j = 0;
if(l == 0)
j = mid;
else
j = mid+1;
for(;j<size;j++){
if(!s.pop().toString().equals(String.valueOf(chs[j])))
flag = false;
}
if(flag)
System.out.print("Y");
else
System.out.print("N");
}

java写的 测试通过 你自己试一下
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式