算法学习笔记(二)——队列、栈、链表

本文介绍了队列的基本概念,包括其特殊线性结构的特点、基本操作(如入队和出队)以及应用场景。通过示例代码展示了如何实现一个简单的队列,并解释了队列在编程中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

二 队列、栈、链表

1 解密QQ号——队列

1 任务:对一串数字顺序操作。每次操作扔掉队首的数字,再把第二个数移动到队尾,重复这个操作,直至将这一串数字全部删除。

2 思路:引入两个整型变量head和tail。head表示队首,tail表示队尾+1。删除队首,对应着head+1,把数字x移动到队尾,对应着a[tail]=x,tail++。

3 总结

队列。队列是一种特殊的线性结构,它只允许在队列的首部(head)进行删除操作,称为“出队”,在队尾(tail)进行插入操作,称为“入队”。当队列中没有元素时(即head = tail ),称为“空队列”。生活中很多场景都是队列,比如买火车票,排队打饭等等。为先来的人先服务,称为先入先出原则(First In First Out,FIFO)。

队列是今后学习广度优先搜索、队列优化的Bellman-Ford最短路径算法的核心数据结构。所以现在将队列的三个基本元素(一个数组,两个变量)封装为一个结构体类型,如下:

struct queue    //struct 是结构体的关键字,queue是我们为这个结构体起的名字。这个结构体有三个成员,分别是:整型数组data,整型head和整型tail。
//结构体可以理解为一个新的数据类型。我们现在定义的是数据类型
{
    int data[100];//队列的主体,用来存储内容
    int head;//队首
    int tail;//队尾
};//注意!这里有分号。

struct queue q;//这是在定义结构体类型的变量。注意这里struct 和 queue 要整体使用,都写出来。

4 示例代码:

#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++)
    {
        //依次输入9个数
        scanf("%d", &q.data[i]);
        q.tail++;   
    }

    while(q.head < q.tail)//当队列不为空的时候执行循环
    {
        //打印队首并将队首出队
        printf("%d", q.data[q.head])
        q.head++;

        //先将新队首的数添加到队尾
        q.data[q.tail] = q.data[q.head];
        q.tail++;
        //再将队首出队
        q.head++;
    }
    return 0;
}



资源下载链接为: https://pan.quark.cn/s/22ca96b7bd39 在当今的软件开发领域,自动化构建与发布是提升开发效率和项目质量的关键环节。Jenkins Pipeline作为一种强大的自动化工具,能够有效助力Java项目的快速构建、测试及部署。本文将详细介绍如何利用Jenkins Pipeline实现Java项目的自动化构建与发布。 Jenkins Pipeline简介 Jenkins Pipeline是运行在Jenkins上的一套工作流框架,它将原本分散在单个或多个节点上独立运行的任务串联起来,实现复杂流程的编排与可视化。它是Jenkins 2.X的核心特性之一,推动了Jenkins从持续集成(CI)向持续交付(CD)及DevOps的转变。 创建Pipeline项目 要使用Jenkins Pipeline自动化构建发布Java项目,先需要创建Pipeline项目。具体步骤如下: 登录Jenkins,点击“新建项”,选择“Pipeline”。 输入项目名称和描述,点击“确定”。 在Pipeline脚本中定义项目字典、发版脚本和预发布脚本。 编写Pipeline脚本 Pipeline脚本是Jenkins Pipeline的核心,用于定义自动化构建和发布的流程。以下是一个简单的Pipeline脚本示例: 在上述脚本中,定义了四个阶段:Checkout、Build、Push package和Deploy/Rollback。每个阶段都可以根据实际需求进行配置和调整。 通过Jenkins Pipeline自动化构建发布Java项目,可以显著提升开发效率和项目质量。借助Pipeline,我们能够轻松实现自动化构建、测试和部署,从而提高项目的整体质量和可靠性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值