前言
队列是我们今后学习广度优先搜索以及队列优化的Bellman-Ford最短路径算法的核心数据结构。
现在将队列的三个基本元素讲一下:
即:一个数组 int nums[], 两个变量 head头指针,tail尾指针。
struct queue{
int data[100];//数组作为队列的主体,用来存储内容
int head; //队首
int tail; //队尾
};
struct queue q;
表示对这个结构体引用。
因此
q变量含有queue这个结构体的三个元素。这是调用方式
q.head=1;
q.tail=1;
q.data[ ];
如果想要访问结构体内部成员的话
可以 使用**.**点号,它叫做成员运算符或点算运算符。
q.data[q.tail];
总结关于一些队列的基本内容就是这些,如果还有补充的话,希望可以在评论区说一下哈。
1.解密QQ号------队列
二、实现代码
示例
struct queue
{
/* data */
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]);
q.tail++;
}
while(q.head<q.tail)// 当队列不为空时;
{
printf("%d",q.data[q.head]);
printf(" ");
q.head++;
q.data[q.tail]=q.data[q.head];
q.tail++;
q.head++;//这里是开始指向下一个队首
}
getchar();
getchar();
return 0;
}
总结
队列是一种特殊的线性结构,他只允许在队列的首部head进行删除,称“出队”,在队列的尾部进行插入时,叫“入队”,
这里叫做“先进先出”原则!(First In First Out)FIFO
生活中同样有很多例子,比如排队买票,吃饭排队,先到先得的意思!