首页 > 其他 > 详细

数据结构(壹) 队列

时间:2020-02-01 23:36:42      阅读:83      评论:0      收藏:0      [点我收藏+]

1.数据结构与算法常见概念:

数据:是描述客观事物的符号,是计算机中可以操作的对象,是能被计算机识别,并输入给计算机处理的符号集合。
数据元素:是组成数据的,有一定意义的基本单位,在计算机中通常作为整体处理,也被称为记录。
数据结构:是相互之间存在一种或多种特定关系的数据元素的集合。
数据结构的逻辑结构:数据对象中数据元素之间的相互关系,分为线性结构、树形结构、图形结构以及集合结构。
数据结构的物理结构:数据的逻辑结构在计算机中的存储形式,分为顺序存储和链式存储(不连续存储)。
算法:解决特定问题求解步骤的描述,在计算机中表现为指令的有限序列,并且每条指令表示一个或多个操作。
算法五个基本特性:输入、输出、有穷性、确定性和可行性。
算法时间复杂度O(n):常数阶、线性阶、平方阶、对数阶、立方阶、nlogn阶、指数阶。
耗时排序:O(1)<O(logn)<O(n)<O(nlogn)<O(n^2)<O(n^3)<O(2的n次方)<O(n!)<O(n^n)
———————————————

队列:个人的理解即为一种只允许从队首(head)进行删除,即出队;而在队尾(tail)进行插入,即入队的数据结构。

<这里head为队首,但tail = 队尾+1;   这是为了便于处理队列中只有一个元素的情况,所以当head=tail时,称为空队列。

  先者于前,后者处后 FIFO原则

下面是一段队列的C语言代码

1 struct queqe

2 {

3 int data[100];//队列的主体

4 int head;//队首

5 int tail;//队尾  

};

 

 并附上相关的操作

1 struct queqe q;

2 q.head++;//出队

3 q.data[tail] = num;

4 q.tail++;//num 入队

 

 通过查阅资料,C++的STL库中已经有队列的实现

  1、库中queue的获取
  队列和栈一样,存储在STD库中,可以通过#include<queue>获取
  2、queue的定义
  queue <T> q;其中T为int,char,float等等
  3、主要功能函数
  push(e):将元素e压入队列尾部
  pop():将队列首部元素弹出,无返回
  front():获取队列头部元素
  back():获取队列尾部元素
  empty():判断队列是否为空
  size():取得队列的大小
————————————————

 

 1 #include <iostream>
 2 #include<queue>
 3 
 4 using namespace std;
 5 
 6 int main()
 7 
 8 {
 9 
10     queue<int> q;
11 
12     for(int i=0;i<10;i++)
13 
14     q.push(i); //将i压入队列的尾部
15 
16     cout<<q.size()<<endl;
20     cout<<q.back()<<endl;//读取队列最后一个元素
21 
22     while(!q.empty())
23 
24     {
25 
26         cout<<q.front()<<" ";
27 
28         q.pop(); //将队列头部元素弹出
29 
30     }
31 
32     cout<<endl;
33 
34     cout<<q.size()<<endl;
35 
36 
37     return 0;
38 
39 }

输出结果:

10
9
0 1 2 3 4 5 6 7 8 9
0

参考网址:https://blog.csdn.net/livecoldsun/article/details/25011413

  


 

数据结构(壹) 队列

原文:https://www.cnblogs.com/2020cs/p/12250313.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!