上一篇:数据结构与算法(七):快速排序 & 归并排序
STL:priority_queue(优先级队列)
头文件:#include<queue>
#include<iostream>
#include<queue>
using namespace std;
int main() {
//以vector作为底层容器
priority_queue<int, vector<int>, less<int>> q;//创建最大堆
priority_queue<int>;//默认最大堆
priority_queue<int, vector<int>, greater<int>>;//最小堆
//插入元素
q.push(6);
//访问堆顶元素
q.top();
//删除堆顶元素
q.pop();
//判断堆是否为空
q.empty();//返回true1 false0
//由大到小输出元素
while (!q.empty()) {
cout << q.top()<<endl;
q.pop();
}
return 0;
}
递归
函数内部调用自己本身叫做递归,因此编写这样的函数时很容易出错,进而导致无限循环
基线条件(终止条件)和递归条件
递归条件指的是函数调用自己
基线条件知道是函数不再调用自己,从而避免形成无限循环

基线条件应该先于递归条件,否则会一直递归无法终止
练习题

#include<iostream>
using namespace std;
int jump(int n) {
//基线条件
if (n <= 2) {
return n;
}
//递归条件
return jump(n – 1) + jump(n – 2);
}
int main() {
int n;
cout << "青蛙跳上几层高的台阶?"<<endl;
cin >> n;
cout<<jump(n);
}




