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
    
    ==顶上的元素和想要的排序是正好相反的==
    
  • 相关阅读:
    Mysql之锁、事务绝版详解干货!
    SSL基础知识(比较清楚)
    数字证书使用流程指南
    HTTPS与SSL
    IIS 6.0 Web园(Web Garden)
    验证数字可以有千分符可以有0个1个小数点小数点后输入后四舍五入保留两位(写个js验证真费劲)
    线程安全
    利用SSL给IIS加把锁(转)
    弹出div后其它不能操作(小技巧)
    关于反射
  • 原文地址:https://www.cnblogs.com/PushyTao/p/14507427.html
Copyright © 2011-2022 走看看