zoukankan      html  css  js  c++  java
  • 数据结构知识整理

    标题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
    
    ==顶上的元素和想要的排序是正好相反的==
    
  • 相关阅读:
    xcode构建webdriverAgent时报错Messaging unqualified id的解决办法
    ubuntu18.0安装RabbitMQ
    python中*的用法
    Jenkins构建项目
    Jenkins安装与配置
    git_仓库
    六、 Shell数组应用
    五、 Shell函数应用
    三、 Shell流程控制
    二、 Shell变量定义
  • 原文地址:https://www.cnblogs.com/PushyTao/p/14507427.html
Copyright © 2011-2022 走看看