一、队列定义:队列是限定在一端进行插入,另一端进行删除特殊线性表。
二、队列基本操作:
- 入队
- 出队
三、队列例题:
1.例1:舞伴配对问题:
分析:这一题是一道经典的取模运算,每一次将编号往前加一位,到达n就取模。
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<math.h>
int main(){
int i,j,k,n,m;
scanf("%d%d%d",&m,&n,&k);
int a=1,b=1;
while(k>0){
printf("%d %d\n",a,b);
a%=m;b%=n;a++;b++;
k--;
}
return 0;
}
2.集合的前N个元素:编一个程序,按递增次序生成集合M的最小的N个数,M的定义如下:
(1)数1属于M;
(2)如果X属于M,则Y=2*x+1和Z=3*x+1也属于M;
(3)此外再没有别的数属于M。
分析:这一题可以用两个数组来存放有Y和Z产生而出的元素,再通过对比选出小的输出:
#include<stdio.h>
int a[100001],b[100001];
int main(){
int i,j,k,n,m;
int x=1;
int ra=0,rb=0,la=