啊哈算法---队列


前言

队列是我们今后学习广度优先搜索以及队列优化的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

生活中同样有很多例子,比如排队买票,吃饭排队,先到先得的意思!

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值