自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

pigff的博客

一个进阶中的程序猿的博客

  • 博客(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

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除