- 隊列
- 先進先出的數據結構
-
代碼詳情:將輸入的數“排隊”。每次從最前面拿兩個,第1 個扔掉,第 2 個放到尾部,直到最後一個數也被扔掉
//先進先出的數據結構————隊列
#include<stdio.h>
struct queue
{
int data[100];//隊列的主體,存儲內容
int head;//隊首
int tail;//隊尾
};
int main()
{
struct queue q;
int i;
q.head=1;
q.tail=1;//初始化隊列
for(i=1;i<=9;i++){
scanf("%d",&q.data[q.tail]);//依次向隊列插入9個數
q.tail++;
}
while(q.head<q.tail){//當隊列不爲空時,循環
printf("%d ",q.data[q.head]);//打印隊首
q.head++;//將隊首出列
q.data[q.tail]=q.data[q.head];//0將新隊首移到隊尾
q.tail++;
q.head++;//再將隊首出列
}
}
- 棧
- 後進後出的數據結構
- 代碼詳情:解密迴文字符串
//後進先出數據結構#--#判斷迴文字符串————棧
#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;//棧的初始化
for(i=0;i<=mid;i++){//將mid前的字符依次入棧
top++;
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--;
}
if(top==0)
printf("YES");
else
printf("NO");
}