结构体类型:
struct stack {
int data[10];
int top; //栈顶指针
}
概念:
栈也是一种特殊的线性结构,只允许在栈顶(top)进行删除–“出栈”,和插入–“入栈”。当队列中没有元素时(即top=0),称为空栈。
重点:栈遵循先进后出原则!
使用栈判断回文数
已知“xyzyx”是一个回文字符串,即正读与反读均相同的字符串。则我们根据栈可以很好的进行判断 一个字符串是不是回文数。
代码:
#include<bits/stdc++.h>
using namespace std;
struct Stack{
int data[100];
int top;
};
int a[100];
int main(){
Stack s;
int n;
s.top=0;
scanf("%d",&n);
getchar();
for(int i=0;i<n;i++){
scanf("%c",&a[i]);
}
int mid,i,flag=1;
mid=n/2-1;
for(i=0;i<=mid;i++){
s.data[s.top]=a[i];
s.top++;
}
i--;
if(n%2==0){ //偶数
s.top--;
while(s.top>=0){
i++;
if(s.data[s.top--]!=a[i])
{
flag=0;
break;
}
}
}
else{
s.top--;
i++;
while(s.top>=0){
i++;
if(s.data[s.top--]!=a[i])
{
flag=0;
break;
}
}
}
if(flag) printf("yes");
else printf("no");
return 0;
}