#栈
栈,是一种后进先出的数据结构。栈限定为只能在一端进行插入和删除操作。
例如有一个桶,桶的直径只能放一个球,现在将桶内依次放入编号为2,1,3号小球假如你现在需要拿出二号小球来,那就得先把三号小球拿出来,再把一号小球拿出来最后才能把二号小球拿出来,即最先放进去的小球最后才能拿出来,而最后放进去的小球是最先拿出来的。
例题:判断回文字符串
#include <stdio.h>
#include <string.h>
int main()
{
char a[101],s[101];
int i,len,mid,next,top;
gets(a);//读入字符串
len=strlen(a);//求字符串的长度
mid=len/2-1;//求字符串的中点
top=0;//初始化栈
//将mid前的字符依次入栈
for(i=0;i<=mid;i++)
s[++top]=a[i];
//判断字符串的长度是奇数还是偶数,并找出需要进行字符匹配的起始下标
if(len%2==0)
next=mid+1;
else
next=mid+2;
//开始匹配
for(i=next;i<=len-1;i++)
{
if(a[i]!=s[top])
break;
top--;
}
//如果top的值为0,则说明站内的字符都被匹配了
if(top==0)
printf("yes");
else
printf("no");
getchar();getchar();
return 0;
}