![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
liangximin2046
学生
展开
-
堆(优先队列)与堆排序通俗介绍(c++实现)
0 简介堆是一种比较精妙的数据结构,一般所使用的二叉堆,其本质上来说,是一棵完全二叉树,所以一般使用一个数组就可以模拟堆的各种操作。对于任意一个节点来说,若它的节点编号为iii(1<=i<=n1<=i <= n1<=i<=n),那么它的左儿子节点编号就是2i2i2i,右儿子节点编号就是2i+12i+12i+1,父亲节点就是i/2i/2i/2。最小堆中,每一个节点的值均小于父亲节点,大于它的父亲节点。堆一般支持插入元素、返回和删除最值元素等操作,下面以二叉最小堆为例讲讲这原创 2020-09-21 15:51:23 · 180 阅读 · 0 评论 -
c++实现栈的出栈验证思路总结
Leetcode946题是一道关于栈的出栈顺序验证的一道题,问题叙述如下:问题描述:给定pushed和popped两个序列,每个序列中的 值都不重复,只有当它们可能是在最初空栈上进行的推入 push 和弹出 pop 操作序列的结果时,返回 true;否则,返回 false 。示例1:输入pushed = [1,2,3,4,5],poped = [1,2,3,4,5],输出true...原创 2019-12-05 21:30:52 · 461 阅读 · 0 评论