您的位置:首页 > 理论基础 > 数据结构算法

@【数据结构】(栈 判断字符串回文)

2020-04-01 19:05 232 查看

@【数据结构】(栈 判断字符串回文)

用栈来实现一个表达式中的‘(’,‘[‘,’)’,’]’,’{‘,’}’是否匹配

#include<stdio.h>
#include<stdlib.h>
#include<iostream>
#define MAXN 100
using namespace std;

typedef char Elemtype;
typedef struct
{
Elemtype data[MAXN];
int top;
}Sqstack;
void Init(Sqstack &st)
{
st.top = -1;
}
int push(Sqstack &st, Elemtype x)
{
if (st.top == MAXN - 1)  return 0;
else
{
st.top++;
st.data[st.top] = x;
return 1;
}
}
int pop(Sqstack &st ,Elemtype &x)
{
if (st.top == -1) return 0;
else
{
x = st.data[st.top];
st.top--;
return 1;
}

}
void Destroy(Sqstack st)
{

}
int judge(char str[], int n)
{
int i;
char c;
Sqstack st;
Init(st);
for (i = 0; i < n; i++)
push(st, str[i]);
i = 0;
while (st.top != -1)  //栈不为空
{
pop(st, c);
if (c != str[i++])
{
Destroy(st);
cout << "字符串不回文" << endl;
return 0;
}
}
Destroy(st);
cout << "字符串回文" << endl;
return 1;
}
void main()
{
Sqstack st;
Init(st);
Elemtype str[10];
int n;
cout << "请输入字符串长度:";
cin >> n;
cout << "请输入字符串:" << endl;
for (int i = 0; i < n; i++)
cin >> str[i];
judge(str, n);
system("pause");
}

测试示例:

  • 点赞
  • 收藏
  • 分享
  • 文章举报
细语长长 发布了25 篇原创文章 · 获赞 1 · 访问量 650 私信 关注
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: