C++版本:
栈:
#include< stack > 定义:stack< int > s;
s.empty(); //如果栈为空则返回true, 否则返回false;
s.size(); //返回栈中元素的个数
s.top(); //返回栈顶元素, 但不删除该元素
s.pop(); //弹出栈顶元素, 但不返回其值
s.push(); //将元素压入栈顶
队列:
#include< queue> 。定义:queue< int > q;
q.empty() 如果队列为空返回true,否则返回false
q.size() 返回队列中元素的个数
q.pop() 删除队列首元素但不返回其值
q.front() 返回队首元素的值,但不删除该元素
q.push() 在队尾压入新元素
q.back() 返回队列尾元素的值,但不删除该元素
堆:
1、使用队列定义堆:
#include< queue>
priority_queue<int> q; 默认最大堆
priority_queue<int,vector<int>,less<int> >;定义最大堆 //后面有一个空格
priority_queue<int,vector<int>,greater<int> >q;定义最小堆 //后面有一个空格
2、直接使用库函数:
#include <algorithm>
make_heap: 根据指定的迭代器区间以及一个可选的比较函数,来创建一个heap.
push_heap: 把指定区间的最后一个元素插入到heap中.
pop_heap: 弹出heap顶元素, 将其放置于区间末尾.
sort_heap:堆排序算法,通常通过反复调用pop_heap来实现.
python 版本
参考博客:https://www.cnblogs.com/BASE64/p/10956768.html
栈:
列表就能实现。
队列:
1、from collections import deque
d = deque()
2、form queue import Queue
q = Queue() #创建队列对象
堆:
import heapq
heapq模块实现了一个适用于python列表的最小堆排序算法。
内容不完整,后续补充。