数据结构 队列学习总结

数据结构是计算机存储、组织数据的方式。数据结构是指相互之间存在一种或多种特定关系的数据元素的集合。通常情况下,精心选择的数据结构可以带来更高的运行或者存储效率。

前言

队列是线性表(线性存储结构)中比较特殊的一种,它的特点总结下来就四个字“先进先出”。本文介绍队列以及循环队列

1. 队列介绍

1.1 什么是队列

队列(queue)是一种遵循”先进先出“的存储方式。

队列示意图

如同这个示意图,数据从head开始依次进入队列(入队),取出数据时同样从head开始 依次离开队列(出队)。就像在高铁检票口前排起的一条队伍,先到的人排在前面,后来的人排在队伍的后面(进入队伍不考虑插队),开始检票的时候也是从前往后依次检票(离开队伍)。

队列只是一种对一组数据的处理方式,对于数据的存储既可以采用顺序表的方式也可以采用链表的方式。

本文采用顺序表的方式存储队列中的数据

1.2 队列的性质

  • 新元素插入到队列的末尾

  • 队首元素先离开队列

1.3 队列的构成

  • 队首位置
  • 队尾位置
  • 队列的容量
  • 数据的存储空间

1.4 队列的框架代码(C++版)

#include <iostream>
#include<iostream>
using namespace std;
//
template <typename Type> class Queue {
   
private:
    Type *data;
    int head, tail, length;
public:
    Queue(int new_length);	// 构造函数,初始化队列
    ~Queue();				// 析构函数,回收队列的内存空间
    bool push(Type val);	// 入队操作
    void output();			// 输出队列中的元素
    void pop();				// 出队操作
};

下述的所有代码都是基于这个框架

2. 队列的操作

2.1 初始化队列

2.1.1 步骤

  1. 根据队列的长度为数据申请存储空间
  2. 队伍中没有元素将队首置为0
  3. 将队尾置为-1(当有入队操作时使队尾加1)

2.1.2 代码展示

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值