数据结构知识整理

简介: 标题2020 - 1024 == 996你品,你细品堆、栈、队列大根堆小根堆大根堆 堆顶的元素是最大的,越往下越小小根堆 堆顶的元素是最小的,越往下越大

标题2020 - 1024 == 996


你品,你细品


堆、栈、队列


1. 大根堆小根堆


大根堆 堆顶的元素是最大的,越往下越小
小根堆 堆顶的元素是最小的,越往下越大

微信图片_20220531182523.png微信图片_20220531182530.png

大根堆小根堆的声明:

priority_queue <int, vector<int>, greater<int> > xiaogen;
priority_queue <int, vector<int>, less<int> > dagen;


2. 栈


栈有两种基本操作,push() ,pop()操作

push()是放进去元素,pop是取出元素,top()可以获取顶端的元素

栈是一种先进后出的数据结构

举个例子来说的话,更像是筒装可比克薯片(吃货实锤 ),只能获取顶端的或者是从顶端放进去


3. 队列


是一种先进先出的数据结构,两种基本操作是push() , pop(),push是从队列的尾端操作,每次pop是放出元素,从队列的顶端。

他的顶端在最开始的开头部分

队列最实际的例子就是现实生活中的队列


4. 优先队列 priority_queue


大根堆和小根堆其实就是一种优先队列,也有其他类型的优先队列,比如队列中套用结构体这种类型,就要用下面的方式进行声明和定义

struct node{

struct node{
    int a;
    int b;
    friend bool operator < (const node& x,const node& y){
        return x.a < y.a;
    }
};
priority_queue<node> que;
因为优先队列要有一定的顺序性,所以就要有一定的排序规则在里面,这就要求用到重载运算符的方式来约束排序的规则
若按照以下的方式进行输入:
1 2
2 3
3 2
1 6
2 8


那么对应的输出就是:


3 2
2 8
2 3
1 6
1 2
==顶上的元素和想要的排序是正好相反的==



目录
相关文章
|
4月前
|
存储 机器学习/深度学习 算法
数据结构基础题复习
数据结构基础题复习
18 0
|
存储 机器学习/深度学习 算法
大话数据结构笔记【2】:算法(二)
大话数据结构笔记【2】:算法
66 0
大话数据结构笔记【2】:算法(二)
|
6月前
|
存储 算法 Java
【数据结构】详细讲解常见的数据结构(通俗易懂)
【数据结构】详细讲解常见的数据结构(通俗易懂)
100 0
|
算法 搜索推荐
数据结构思维导图汇总
数据结构思维导图汇总
255 0
数据结构思维导图汇总
|
存储 算法 Java
大话数据结构笔记(一)
大话数据结构笔记(一)
144 0
|
存储 机器学习/深度学习 算法
数据结构之堆——算法与数据结构入门笔记(六)
数据结构之堆——算法与数据结构入门笔记(六)
数据结构之堆——算法与数据结构入门笔记(六)
|
存储 机器学习/深度学习 算法
大话数据结构笔记【2】:算法(一)
大话数据结构笔记【2】:算法
87 0
|
存储 算法 搜索推荐
大话数据结构笔记【1】:数据结构绪论
大话数据结构笔记【1】:数据结构绪论
70 0