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