数据结构: 队

1.概念

队列是一种先进先出(First In, First Out,FIFO)的数据结构,这意味着最先加入队列的元素最先被移除。我们可以将队列想象成一排排队的人,新来的总是站在队尾,队首的人先离开。

2.基本操作

  • 入队(Enqueue):将元素加入队尾。
  • 出队(Dequeue):将队首元素移除并返回。
  • 窥视(Peek 或 Front):返回队首元素但不移除它。
  • 判空(IsEmpty):检查队列是否为空。

3.简单实现

template<class T, class Container = list<T>>
class Queue
{
public:
    Queue() {}
    size_t size() {return q.size();}
    bool empty() {return q.empty();}  
    void push(const T& x = T()) {q.push_back(x);}
    void pop() {q.pop_front();}  
    T& front(){return q.front();}
    T& back(){return q.back();}
    const T& front()const{return q.front();}
    const T& back()const{return q.back();}

private:
    Container q;
};

4.使用场景

  1. 操作系统中的任务调度:多个进程按顺序执行。
  2. 打印队列:打印作业按顺序处理。
  3. 广度优先搜索(BFS):在图的遍历中使用队列。
  4. 缓冲区:在数据流处理(如网络数据包)时,使用队列来缓冲数据。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值