首页 > 编程语言 >算法基础入门 - 2.栈、队列、链表

算法基础入门 - 2.栈、队列、链表

时间:2024-07-03 15:28:53浏览次数:21  
标签:head 入门 队列 队首 链表 ++ tail

文章目录

算法基础入门

第二章 栈、队列、链表

2.1 队列

队列是一种特殊的线性结构,它只许在队列的首部进行删除操作,称为‘出队’,在队列的尾部进行插入操作,称为‘入队’。队列无元素时,称为‘空队列’。队列遵循‘先进先出’原则。
例:head和tail两个整型变量分别用来记录队列的队首和队列的尾部的下一个位置

在队首删除一个数的操作就是head++;

对队尾增加一个数的操作就是q[tail]=x;tail++;

在这里插入图片描述
在这里插入图片描述


#include <stdio.h>

struct queue
{
   
    int data[100]; //队列主体,存储内容 
    int head;      //队首 
    int tail;      //队尾 
};

int main()
{
   
    struct queue q;
    q.head = 1;
    q.tail = 1;
    int i;
    for(i = 0; i < 10; i++)
    {
   
        scanf("%d",&q.data[q.tail]); //插入数据 
        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++;                       //队首出队 
    }

标签:head,入门,队列,队首,链表,++,tail
From: https://blog.csdn.net/zhongziqia/article/details/140108263

相关文章

  • OPENCV(视频入门笔记)
    目标学习读取视频,显示视频和保存视频。学习从相机捕捉并显示它。cv.VideoCapture(),cv.VideoWriter()从相机中读取视频从相机中读取视频通常情况下,我们必须用摄像机捕捉实时画面。提供了一个非常简单的界面。让我们从摄像头捕捉一段视频(我使用的是我笔记本电脑内置的网......
  • Java编程从入门到放弃
    1.配置开发环境安装JDK官网下载地址:https://www.oracle.com/java/technologies/downloads/配置环境变量最新版本JDK22无需手动配置环境变量。老版本:此电脑-右键属性-高级系统设置-环境变量-系统变量-Path-编辑C:\Java\jdk1.8.0_65\bin检查结果java-versionHelloWor......
  • 【2024版】最新HW参考 | HVV行动之蓝军经验总结(非常详细)零基础入门到精通,收藏这一篇就
    ‍正文:HW行动,攻击方的专业性越来越高,ATT&CK攻击手段覆盖率也越来越高,这对于防守方提出了更高的要求,HW行动对甲方是一个双刃剑,既极大地推动了公司的信息安全重视度和投入力量,但同时对甲方人员的素质要求有了很大提升,被攻破,轻则批评通报,重则岗位不保;大的金融、央企可能不担心......
  • 多模态大模型入门指南
    作者:林夕,阿里巴巴集团高级算法工程师,专注多模态大模型研究。声明:本文只做分享,版权归原作者,侵权私信删除!原文:https://zhuanlan.zhihu.com/p/682893729内容总结,本篇综述主要介绍和分析了以下几个方面:•概述了MM-LLMs的设计形式,将模型架构分为5个部分:模态编码器、输入......
  • 力扣刷题之旅——21. 合并两个有序链表
    I理解题目需求II设计程序(参考:Violent-Ayang)III程序解析IV 程序相关知识点1.结构体(struct):2.指针(*):3.循环(while)和条件语句(if和else):I理解题目需求1.合并两个已经是升序排列的链表2.将它们合并为一个新的、也是升序排列的链表。3.合并后的链表需要包含两个输入......
  • 2024爆火全网的LLM大语言模型黑书!入门大模型大家全都在学~(附pdf)
    今天给大家推荐一本4月份才新出的大型语言模型(LLM)的权威教程《基于GPT-3、ChatGPT、GPT-4等Transformer架构的自然语言处理》!Google工程总监AntonioGulli作序,一堆大佬推荐!这含金量不用多说,不多bb开始介绍!本教程内容主要内容•了解用于解决复杂语言问题的新技术•将GP......
  • 12.优化算法之队列+宽搜(BFS)
    BFS——广度优先算法(BreadthFirstSearch)-CSDN博客1.N叉树的层序遍历(广度优先搜索)429.N叉树的层序遍历-力扣(LeetCode)classSolution{publicList<List<Integer>>levelOrder(Noderoot){List<List<Integer>>ret=newLinkedList<>();......
  • AI绘画入门实践|Midjourney:画面权重控制
    在Midjourney中,使用两个连续的英文冒号::来进行分割与权重控制。作为分隔符使用在提示词中添加双冒号::表示让MJ将部分提示词单独考虑2dillustration,frenchfries,hotdog--v62dillustration,frenchfries,hot::dog--v6作为权重控制使用在......
  • C++ STL 优先队列 (priority_queue)
    std::priority_queue<queue>优先队列  1、第一个元素始终为最大元素。  2、有着类似于堆的特性,它可以在其中随时插入元素。  3、支持下标访问(随机访问迭代器)优先队列内部的实现需要依赖基础容器,该容器应可通过随机访问迭代器访问,并需要支持以下操作empty()si......
  • C语言编程-基于单链表实现贪吃蛇游戏
    基于单链表实现贪吃蛇游戏1.定义结构体参数蛇行走的方向蛇行走的状态蛇身节点类维护蛇的结构体型2.游戏运行前预备工作定位光标位置游戏欢迎界面绘制游戏地图(边界)初始化游戏中的蛇身创建食物3.游戏运行下一个位置是食物,就吃掉食物,释放该节点下一个位置不是......