学习栈好久后再拿出来复习一波,初始化栈只需要使 top=0 , 入栈的操作是top++,s[top]=x, 即s[++top]=x。
内容
栈是一种后进先出的数据结构。栈限定为只能在一端进行插入和删除操作。比如说一个小桶,小桶的直径只能放一个小球,我们现在在小桶内一次放入2、1、3号小球。假如你现在需要拿出2号小球,那就必须先将3号小球拿出,再拿出1号小球,最后才能将2号小球拿出来。
题目-解回文数
#include<stdio.h>
#include<string.h>
int flag;
int main()
{
char a[101],s[101];
int len,mid,top=0;
scanf("%s",a);
len=strlen(a);
mid=len/2; //5/2=2 6/2=3 0,1,2,3,4
for(int i=0;i<=mid-1;i++){
s[++top]=a[i];
}
if(len%2){ //如果是奇数
mid++;
}
for(int i=mid;i<len;i++){
if(s[top]!=a[i]){
break;
}
top--;
}
if(top==0) printf("YES");
else printf("NO");
return 0;
}