- 博客(4)
- 问答 (1)
- 收藏
- 关注
原创 堆的实现及应用(优先级队列,堆排,TopK问题)
堆数据结构是一种数组对象,它可以被看做是一棵完全二叉树。 堆的二叉树存储有两种方式: 1.最大堆:每个父节点的值都大于孩子节点 2.最小堆:每个父节点的值都小于小子节点 如上图所示就是一个最小堆。关于堆,其实说到底就是两种算法,一种是向下调整算法,一种是向上调整算法。我们先结合图来分析一下这两种算法。 就拿上图来说,上图是一个小堆,接下来比如说我们要往里插入一个9,那么因为堆的底...
2017-10-15 11:03:46 1713
原创 关于迷宫求解及其最优解的问题
关于迷宫问题,求解它的最优解的问题可以使用栈的概念来实现。简单的迷宫如下图 其中0表示可以走,1表示不能走,显然可见,若是以(3,1)点为入口,则有两个出口分别是(10,3)和(10, 8)。而两个出口的路径长度是不同的。这就产生了迷宫最优解的问题。 下面附上代码,我们寻找下一个位置是否可走的顺序是顺时针顺序,即上右下左。#pragma once#include<iostream>usi
2017-10-08 11:39:53 3768
原创 栈和队列基础面试题
学完了stack和queue的基础接口与模拟实现,接下来我们来一下与栈和队列相关的基础面试题。一.实现一个栈,要求实现Push(出栈)、Pop(入栈)、Min(返回最小值的操作)的时间复杂度为O(1) 这里我们就需要用两个栈来实现这个功能,一个是主栈s1,一个是辅栈s2,不论插入什么元素,都要在s1中插,s2存储的类型为pair,s2作为辅栈它只存储比先前元素还要小的元素,如果之前已经出现过
2017-10-06 11:14:18 274
原创 STL库中的stack和queue及其模拟实现
在学完了list和vector之后,紧接着就是与其相关联的两个数据结构栈(stack)和队列(queue)。栈的特点是先进后出,即先进栈的元素后出栈;队列的特点是后进先出,即先入队列的元素先出队列。 栈只允许在栈顶插入和删除数据,其基本结构如下 队列只允许在队尾插入数据,在队头删除数据,其基本结构如下 栈更像是一个线性表,因为vector的push_back 和 pop_back更容易
2017-10-06 10:12:12 485
空空如也
我在安装tagbar.vmb插件时碰到了如下错误,求教
2017-11-15
TA创建的收藏夹 TA关注的收藏夹
TA关注的人