数据结构01-线性结构-链表栈队列-队列篇

news2024/11/28 0:53:07

文章目录

    • 参考:
    • 总结
    • 大纲要求
    • 线性结构-队列
      • QQ号码解密

在这里插入图片描述

参考:

总结

本系列为C++数据结构系列,会介绍 线性结构,简单树,特殊树,简单图等。本文为线性结构部分。

大纲要求

  1. 线性结构
    【 3 】链表:单链表、双向链表、循环链表
    【 3 】栈
    【 3 】队列

线性结构-队列

队列(Queue)与栈一样,是一种线性存储结构,它具有如下特点:

(1)队列中的数据元素遵循“先进先出”(First In First Out)的原则,简称FIFO结构;
(2)在队尾添加元素,在队头删除元素。

队列的相关概念:

(1)队头与队尾: 允许元素插入的一端称为队尾,允许元素删除的一端称为队头;
(2)入队:队列的插入操作;
(3)出队:队列的删除操作。

3、队列的操作:

(1)入队: 通常命名为push()
(2)出队: 通常命名为pop()
(3)求队列中元素个数
(4)判断队列是否为空
(5)获取队首元素

4、队列的分类:

(1)基于数组的循环队列(循环队列)
(2)基于链表的队列(链队列)

QQ号码解密

新学期开始了,甘德是石申的新同桌,为交流天文学,甘德向石申询问QQ号,石申给了甘德一串加密过的数字,同时石申也告诉了甘德解密规则。规则是这样的:首先将第1个数删除,紧接着将第2个数放到这串数的末尾,再将第3个数删除并将第4个数放到这串数的末尾,再将第5个数删除直到剩下最后一个数,将最后一个数也删除。按照刚才删除的顺序,把这些删除的数连在一起就是石申的QQ啦。现在你来帮帮甘德吧。石申给甘德加密过的一串数是“631758924”。
在这里插入图片描述

在这里插入图片描述

过程如下:
在这里插入图片描述

#include<stdio.h>
int q[102]={0,6,3,1,7,5,8,9,2,4};
int head,tail;

int main()
{
    int i;
    // 初始化队列
    head=1;
    tail=10;//队列中已有9个元素 tail西乡队尾的后一个位置
    while(head<tail)//当队列不为空的时候执行循环
    {
        // 打印队首并将队首出队
        printf("%d",q[head]);
        head++;//把队首出队

        // 先将新队首添加到队尾
        q[tail]=q[head];
        tail++;

        //将队首出队
        head++;
    }
    getchar();
    getchar();
    return 0;
}

在这里插入图片描述

用结构体封装队列

#include<stdio.h>

struct queue
{
    int data[100];//队列的主体,用来存储内容
    int head;//
    int tail;

};

int q_demo[102]={0,6,3,1,7,5,8,9,2,4};
int main()
{
    struct queue q;
    int i;
    // 初始化队列
    q.head=1;
    q.tail=1;
    for(i=1;i<=9;i++)
    {
        // 依次向队列中插入9个数
        //scanf("%d",&q.data[q.tail]);//
        q.data[q.tail]=q_demo[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++;
    }
    getchar();
    getchar();
    return 0;
}

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/764038.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

在线版PS就选这5个!能免费使用

虽然AdobePhotoshop作为专业的图形编辑工具为设计师带来了很多便利&#xff0c;但是它下载繁琐&#xff0c;费用昂贵的特性也让很多设计师望而却步。本文精心整理了5款能作为在线PS使用的设计工具&#xff0c;不仅能减轻操作设备的内存负担&#xff0c;而且可以免费使用&#x…

Java阶段五Day07

Java阶段五Day07 文章目录 Java阶段五Day07问题解析dubbo和nacos Dubbo负载均衡负载均衡介绍准备一个负载均衡的环境Dubbo负载均衡策略配置负载均衡的方式dubbo配置负载均衡优先级微服务阶段性架构 Spring Boot Starter自定义配置准备一个starter案例项目Spring框架版本迭代案例…

K8S安全风险及防护建议

Kubernetes&#xff08;K8S&#xff09;是一个可移植、可扩展的开源平台&#xff0c;用于管理容器化的工作负载和服务&#xff0c;方便进行声明式配置和自动化。一个Kubernetes集群通常包含跨多台计算机运行的控制平面和多个工作节点&#xff08;node&#xff09;&#xff0c;控…

415. 字符串相加

给定两个字符串形式的非负整数 num1 和num2 &#xff0c;计算它们的和并同样以字符串形式返回。 你不能使用任何內建的用于处理大整数的库&#xff08;比如 BigInteger&#xff09;&#xff0c; 也不能直接将输入的字符串转换为整数形式。 示例 1&#xff1a; 输入&#xff…

被问懵了,加密后的数据如何进行模糊查询?

我们知道加密后的数据对模糊查询不是很友好&#xff0c;本篇就针对加密数据模糊查询这个问题来展开讲一讲实现的思路&#xff0c;希望对大家有所启发。 为了数据安全我们在开发过程中经常会对重要的数据进行加密存储&#xff0c;常见的有&#xff1a;密码、手机号、电话号码、…

【中危】Apache Accumulo 身份认证过程缺陷

漏洞描述 Apache Accumulo是一个排序分布式的 Key-Value 存储应用。 在Apache Accumulo 2.1.0版本中&#xff0c;AccumuloClient 在构造新的实例时移除了自动身份验证机制&#xff0c;身份验证始终在 shell 中进行。当 shell 闲置时间过长&#xff0c;需要重新进行身份验证时&…

前端调整滚动条的外观样式

前端调整滚动条的外观样式 css主要分三个步骤 1、设置滚动条宽度 ::-webkit-scrollbar { width: 5px; } 效果&#xff1a;分别设置50px和5px宽度 2、设置里面小滑块的样式 ::-webkit-scrollbar-thumb {border-radius: 5px;-webkit-box-shadow: inset 0 0 5px rgba(0,0,0…

编程导航算法通关村第 1关 | 两个链表的第一个公共节点

编程导航算法通关村第 1关 | 白银挑战 剑指 Offer 52. 两个链表的第一个公共节点 集合/map 将headA中的链表&#xff0c;放在一个set集合中&#xff0c; 依次遍历headB&#xff0c; headB中第一个包含在set集合中的节点就是第一个公共子节点 ListNode getIntersectionNode(L…

网络安全专业必考的三个证书,初学者建议收藏!

学习网络安全&#xff0c;有三个必考证书&#xff0c;最后一个人手一本&#xff01; 一&#xff0c;NISP证书 NISP即国家信息安全水平考试&#xff0c;由中国信息安全测评中心发证&#xff0c;属于网络安全专业的必考证书。 只有考取NISP一级证书才有机会考取二级&#xff0…

【动手学深度学习】--10.卷积神经网络

文章目录 卷积神经网络1.从全连接层到卷积1.1全连接层1.2平移不变性1.3局部性1.4卷积 2.卷积层2.1互相关计算2.2卷积层2.3图像中目标的边缘检测2.4学习卷积核 3.填充和步幅3.1填充3.2步幅 4.多输入多输出通道4.1多输入通道4.2多输出通道4.3 11卷积层 5.池化层5.1池化层5.2填充和…

设计准则必备:学习UI设计规范的五大黄金法则

看到好看的设计&#xff0c;随手保存起来&#xff0c;这是设计师的基本习惯。但是如果只是好看&#xff0c;并不能驱使受众真正去了解产品。如果想要用户动心&#xff0c;还是需要了解一些设计心理学&#xff0c;从用户心理去引导用户行为。今天给大家分享一些常用的设计法则帮…

对话网易伏羲赵增:开源VS自研?哪条路是通向AIGC的捷径?|WAIC2023

点击关注 文 | 郝鑫、黄小艺 从去年底到现在&#xff0c;国内外肉眼可见地涌现出了一批文生图公司&#xff0c;这背后与基础架构开源有很大关系。 2022年8月&#xff0c;Stability.AI在GitHub上公开开源了Stable Diffusion模型的代码和训练数据集&#xff1b;当月底&#xf…

linux系统编程-文件系统

目录 1文件存储 1.1 inode 1.2 dentry 2.文件系统 2.1 stat函数 2.2 lstat函数 2.3特殊权限位、黏住位 2.4 access函数 2.5 chmod函数 2.6 truncate函数 2.7 link函数 2.8 unlink函数、 2.9 隐式回收 2.10 symlink函数 2.11 readlink函数 2.12 rename函数 2.1…

Java 常用的重构技巧指南 v1.0

前段时间&#xff0c;leader 在 review 代码的时候发现了代码中 存在的一部分的问题&#xff0c;导致 代码的复杂度太高了&#xff0c;包括大部分的sql 都是属于慢sql &#xff0c;还是在建立了索引的情况下 , 代码的流程过于臃肿&#xff0c;而且本人编码的习惯&#xff0c;习…

Mybatis-Plus(一)--Mybatis-Plus介绍与快速入门

阅读这篇文章之前确保你已经学过springboot和mybatis 一.Mybtis-Plus介绍 【1】Mybatis-Puls&#xff08;简称MP&#xff09;是一个MyBatis的增强工具&#xff0c;在MyBatis的基础上只做增强不做改变&#xff0c;为简化开发&#xff0c;提高效率而生。 简单说就是其实很多sql语…

IntelliJ IDEA下载安装教程

目录 友情提醒第一章、IDEA软件下载1.1&#xff09;官网下载 第二章、IDEA软件安装2.1&#xff09;以"ideaIU-2018.3.3.exe"为例3.2&#xff09;启动IDEA软件 友情提醒 点击文章目录可以跳转 第一章、IDEA软件下载 IDEA 全称 IntelliJ IDEA。在智能代码助手、代码…

字节跳动春招研发部分编程题汇总

状压dp(不会) http://t.csdn.cn/W9Pi2 #include <iostream> #include<string.h> #include<math.h> using namespace std; char a[1005]; char c[1005]; int main() {int n;scanf("%d",&n);for(int i1;i<n;i){scanf("%s",a);int l…

Pytorch学习笔记(1)

目录 1. 张量&#xff08;Tensors&#xff09; 2. 自动求导&#xff08;Automatic Differentiation&#xff09; 3. 神经网络的构建和训练 送书活动 PyTorch是一个基于Python的开源机器学习库&#xff0c;广泛应用于深度学习和人工智能领域。它提供了丰富的工具和函数&…

什么是域服务(NETBASE第十一课)

域服务(NETBASE第十一课) web虚拟主机(一台服务器运行多个WEB站点) Web虚拟主机的实现方法&#xff1a; 1&#xff09;同IP不同端口&#xff08;基于端口的虚拟主机&#xff09; 2&#xff09;同端不同IP&#xff08;基于IP的虚拟主机&#xff09; 3&#xff09;同端口同I…

使用typora+PicGo+Gitee简单实现图片上传功能

本文通过配置PicGoGitee来实现typora图片上传功能&#xff0c;系统是window 注意下载的清单有&#xff1a;PicGo&#xff0c;node.js&#xff0c;配置有&#xff1a;PicGo&#xff0c;node.js&#xff0c;gitee&#xff0c;typora 看着复杂实际上并不难&#xff0c;只是繁琐&am…