版权声明:AlanLee版权所有 https://blog.csdn.net/qq1445654576/article/details/83217933
【数据结构 C描述】设计一个算法,用于检测给定的字符串是否为对称串。
所谓对称串,就是字符串从左往右读和从右往左读的序列一样。
例如:
abccba是对称串。
abcabc不是对称串。
//main.cpp
#include <iostream>
#include <malloc.h>
#include <stdlib.h>
#include "SqStack.h"
#include "LinkStack.h"
using namespace std;
int main()
{
char arr[50];
cout << "\n请出入一个对称串:";
cin >> arr;
cout << "\n\n判断该串是否为对称串的情况:";
bool isSymmetryString(char a[]);
isSymmetryString(arr);
system("pause");
cout << "\n";
return 0;
}
/*
设计一个算法,用于检测给定的字符串是否为对称串。
*/
//检测是否为对称串的函数
bool isSymmetryString(char a[]) {
SqStack *S;
InitStack(S);
ElemType e;//存储元素的变量
for (int i = 0; a[i] != '\0'; i++) {
Push(S, a[i]);
}
for (int i = 0; a[i] != '\0'; i++) {
Pop(S, e);
//将数组中的元素与出栈的元素对比,栈中的元素后进先出
if (a[i] != e) {
cout << "\n该串不是对称串。\n";
DestoryStack(S);
return false;
}
}
cout << "\n该串是对称串。\n" << endl;
DestoryStack(S);
return true;
}