队列(queue)是一种常用的数据结构,可以将队列看做是一种特殊的线性表,该结构遵循的先进先出原则。Java中,LinkedList实现了Queue接口,因为LinkedList进行插入、删除操作效率较高
相关常用方法:
boolean offer(E e):将元素追加到队列末尾,若添加成功则返回true。
E poll():从队首删除并返回该元素。
E peek():返回队首元素,但是不删...
分类:
编程语言 时间:
2015-07-25 08:22:07
阅读次数:
547
1.介绍顺序存储容器 : string、vector、list、deque关联存储容器:map底层采用的是树型结构,多数使用平衡二叉树实现,查找某一值是常数时间,遍历起来效果也不错, 只是每次插入值的时候,会重新构成底层的平衡二叉树,效率有一定影响. set 和map都是无序的保存元素,只能通过它提...
分类:
其他好文 时间:
2015-07-20 23:20:06
阅读次数:
146
STL的容器可以分为以下几个大类: 一:序列容器, 有vector, list, deque, string.二 : 关联容器, 有set, multiset, map, mulmap, hash_set, hash_map, hash_multiset, hash_multimap三: 其...
分类:
其他好文 时间:
2015-07-20 22:54:36
阅读次数:
121
STL中有三种序列式容器vector,list,deque。对其分别进行性能介绍vector:vector内部是通过连续的动态内存空间(dynamic array)去管理的,每push_back一个元素,将安插到array尾部。这种通过连续的内存空间去管理的方式,可以方便我们去通过下标索引到值,在其...
分类:
编程语言 时间:
2015-07-19 16:13:39
阅读次数:
149
1. 问题描述 给定一个整数数组和一个大小为k的滑动窗口,滑动窗口每次从左到右移动一个数字,返回每次滑动窗口中的最大值。
2. 方法与思路 Method 1:最朴素的解法就是将窗口在数组上进行滑动,每滑动一次求一下窗口的最值。时间复杂度O(nk)O(nk)。
Method 2:还有就是使用平衡二叉树。
I. 取出数组前kk个元素,构建平衡二叉树。
II....
stl提供了三个最基本的容器:vector,list,deque。vector和built-in数组类似,它拥有一段连续的内存空间,并且起始地址不变,因此它能非常好的支持随即存取,即[]操作符,但由于它的内存空间是连续的,所以在中间进行插入和删除会造成内存块的拷贝,另外,当该数组后的内存空间不够时,...
分类:
其他好文 时间:
2015-07-15 09:11:21
阅读次数:
117
实现方法首先LinkedList继承了AbstractSequentialList实现了List, Deque, Cloneable, java.io.Serializable接口LinkedList是一种常用的list实现,他是基于双向链表(双向链表:集合中的每一个元素都知道其前一个元素和后一个元...
分类:
其他好文 时间:
2015-07-13 23:53:21
阅读次数:
136
顺序容器包含vector list deque
vector:用于查询操作较多的队列
list:用户插入操作较多的队列
deque:双端队列,双端队列中的元素可以从两端弹出,其限定插入和删除操作在表的两端
进行,在队列中间做插入删除操作性能最低。
#define _CRT_SECURE_NO_WARNINGS#include
#include
#includ...
分类:
编程语言 时间:
2015-07-13 12:23:01
阅读次数:
170
题意:按层,将元素收集在一个二维数组中。思路:广搜应该是普遍的方法了。还能避免栈溢出,多好用。搭配deque,因为要经常删除。 1 /** 2 * Definition for a binary tree node. 3 * struct TreeNode { 4 * int val;...
分类:
其他好文 时间:
2015-07-11 13:36:40
阅读次数:
96
为了严格遵循堆栈数据后进先出原则,stack不提供元素的任何迭代操作,因此stack容器不会向外部提供可用的前向或反向迭代器类型。
头文件#include创建stack对象
stack()
默认的构造函数,创建一个空的stack对象。
stack s; //使用默认的deque为底层容器,创建一个空的堆栈对象s。
stack(const stack...
分类:
其他好文 时间:
2015-07-11 12:14:20
阅读次数:
134