数据结构知识整理

标题2020 - 1024 == 996

你品,你细品

堆、栈、队列

  1. 大根堆小根堆
    大根堆 堆顶的元素是最大的,越往下越小
    小根堆 堆顶的元素是最小的,越往下越大
    在这里插入图片描述
    在这里插入图片描述

大根堆小根堆的声明:

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

  1. 栈有两种基本操作,push() ,pop()操作
    push()是放进去元素,pop是取出元素,top()可以获取顶端的元素
    栈是一种先进后出的数据结构
    举个例子来说的话,更像是筒装可比克薯片(吃货实锤 ),只能获取顶端的或者是从顶端放进去
  2. 队列
    是一种先进先出的数据结构,两种基本操作是push() , pop(),push是从队列的尾端操作,每次pop是放出元素,从队列的顶端。
    他的顶端在最开始的开头部分
    队列最实际的例子就是现实生活中的队列
  3. 优先队列 priority_queue
    大根堆和小根堆其实就是一种优先队列,也有其他类型的优先队列,比如队列中套用结构体这种类型,就要用下面的方式进行声明和定义
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
==顶上的元素和想要的排序是正好相反的==
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值