首页 > 其他分享 >学习分享-队列-2(数据结构C语言)

学习分享-队列-2(数据结构C语言)

时间:2024-11-26 20:31:44浏览次数:6  
标签:队头 cout 队列 元素 C语言 tempQueue push 数据结构

本章通过C++ 代码使用 STL(标准模板库)中的queue类实现了栈的基本操作,包括入队、出队、查看队头元素、判断队列是否为空以及清空队列。

导入头文件

#include <iostream>
#include <queue> // 引入队列的头文件
using namespace std;

创建队列

queue<int> q;

入队操作

q.push(10);
q.push(20);
q.push(30);
q.push(40);

使用q.push(value)将元素依次入队

遍历并打印队列

cout << "队列元素: ";
queue<int> tempQueue = q; // 创建一个临时队列以保存元素
while (!tempQueue.empty()) {
    cout << tempQueue.front() << " "; // 打印队头元素
    tempQueue.pop(); // 移除队头元素
}
cout << endl;
  • 创建一个临时队列tempQueue来保存原始队列的元素。
  • 使用while循环和tempQueue.front()输出队列中的每个元素,同时使用tempQueue.pop()将其移除。

查看队头元素

cout << "队头元素: " << q.front() << endl;
  1. 使用q.front()查看当前队头元素,并打印出来。

出队操作

q.pop();
cout << "出队后队头元素: " << q.front() << endl; // 输出: 20

使用q.pop()移除当前队头元素,并再次调用q.front()查看新的队头元素。

判断队列是否为空

if (!q.empty()) {
    cout << "队列不为空" << endl;
}
else {
    cout << "队列为空" << endl;
}

通过q.empty()判断队列是否为空

清空队列

while (!q.empty()) {
    q.pop();
}

利用while循环和q.pop()将队列中的所有元素移除

总结

这段代码展示了如何使用 C++ 标准库 STL 中的 queue 类进行队列的创建、操作和状态检查。通过这种方式,可以很方便地管理数据结构,而不需要手动管理内存或实现相关的操作。此代码适合用作学习和理解队列基本操作的示例。

萌新希望萌新的学习分享能够对大家有所帮助。如果我的内容对您有益,麻烦点点一下关注,感谢大家的支持与鼓励!

完整代码

#include <iostream>
#include <queue> // 引入队列的头文件
using namespace std;

int main() {
    // 创建一个队列
    queue<int> q;

    // 入队操作
    q.push(10);
    q.push(20);
    q.push(30);
    q.push(40);

    // 遍历队列并打印
    cout << "队列元素: ";
    queue<int> tempQueue = q; // 创建一个临时队列以保存元素
    while (!tempQueue.empty()) {
        cout << tempQueue.front() << " "; // 打印队头元素
        tempQueue.pop(); // 移除队头元素
    }
    cout << endl;

    // 查看队头元素
    cout << "队头元素: " << q.front() << endl; // 输出: 10

    // 出队操作
    q.pop();
    cout << "出队后队头元素: " << q.front() << endl; // 输出: 20

    // 判断队列是否为空
    if (!q.empty()) {
        cout << "队列不为空" << endl;
    }
    else {
        cout << "队列为空" << endl;
    }

    // 清空队列
    while (!q.empty()) {
        q.pop();
    }

    // 再次判断队列是否为空
    if (q.empty()) {
        cout << "队列已清空" << endl;
    }

    return 0;
}

标签:队头,cout,队列,元素,C语言,tempQueue,push,数据结构
From: https://blog.csdn.net/weixin_64867865/article/details/144067236

相关文章

  • 【数据结构-队列】力扣622. 设计循环队列
    设计你的循环队列实现。循环队列是一种线性数据结构,其操作表现基于FIFO(先进先出)原则并且队尾被连接在队首之后以形成一个循环。它也被称为“环形缓冲器”。循环队列的一个好处是我们可以利用这个队列之前用过的空间。在一个普通队列里,一旦一个队列满了,我们就不能插入下一......
  • 数据结构--AVL树(平衡二叉树)
     ✅博客主页:爆打维c-CSDN博客​​​​​​ ......
  • 数据结构优化DP
    数据结构优化DP参考题单CleaningShiftsS区间覆盖问题区间加区间最值线段树维护cin>>n>>m>>e;m++,e++;for(inti=1;i<=n;i++) c[i].in();T.build(1,1,e);sort(c+1,c+1+n,[](nodea,nodeb){ if(a.l==b.l)returna.r<b.r; returna......
  • 代码随想录算法训练营第十天(LeetCode232.用栈实现队列;LeetCode225.用队列实现栈;LeetCo
    LeetCode232.用栈实现队列题目链接:用栈实现队列题目链接思路队列是先进先出,栈是先进后出,为了能够让栈可以模拟队列的先进先出,我们设置两个栈,一个栈作为入栈,一个栈作为出栈,我们在入栈存储完数据后,将入栈中的数据全部存储到出栈中,那么从出栈中弹出来的数据就是先进先出的......
  • [Chromium] 多线程任务队列
    Thread线程通用接口,跨平台封装,会创建并持有RunLoop对象//base/threading/thread.hraw_ptr<RunLoop>run_loop_=nullptr;//这种写法可以抽离真正的消息循环逻辑到RunLoop中,并且保证这部分逻辑会随着线程主函数结束后销毁RunLooprun_loop;run_loop_=&run_loop;Run(ru......
  • C语言 - 函数(二)
    1.函数的嵌套调用和链式访问函数和函数之间可以根据实际的需求进行组合的,也就是互相调用的。1.1嵌套调用你写的函数我可以用,我写的函数你可以用,这个叫做嵌套调用。但是不可以嵌套定义intAdd(intx,inty){ returnx+y;}intSub(intx,inty){ returnx-y;}......
  • 【C语言】前端项目故障处理。
    在前端项目中,如何处理错误和异常的? 在前端项目中,处理错误和异常通常涉及以下几个步骤: 捕获错误:JavaScript提供try...catch语句用于捕获运行时可能出现的错误。将可能会出错的代码放在try块内,如果发生错误,程序会立即跳转到相应的catch块,其中可以处理错误。     ......
  • 程序设计C语言(输出素数)
    //输出100~200之间的素数intmain(void){intnum,i;for(num=100;num<=200;num++){for(i=2;i<num;i++){if(num%i==0){break;}if(i==num-1){printf("%d\n",nu......
  • 深入理解指针(C语言)
    本文目录引言概要正文一指针的类型(1)内置数据类型指针(2)数组指针与指向数组的指针(3)函数指针(4)结构体指针与联合体指针(5)空指针(void*)(6)指针的指针(7)常量指针与指向常量的指针二指针的步长三指针的解引用四指针运算(1)常见的指针运算(2)指针运算的注意事项指针的应用(1)数组处......
  • 算法与数据结构 1 - 模拟
    模拟介绍正如名称所说,模拟是信息学学生最早接触,也是难度跨度最大的知识点。简单如《A+B问题》《校门外的树》开门见山,没有任何铺垫和掩饰;困难如《猪国杀》《乱西星上的空战》同样开门见山,但谁做谁头疼。因此,本文选择了模拟作为《算法与数据结构》的第一章。引入正如名字所表......