队列是一种基于先进先出策略的数据集合。使用链表以及泛型机制来实现可以达到最优设计目标:
(1)可以处理任意类型的数据; (2)所需的空间总是和集合的大小成正比; (3)操作所需的时间总是和集合的大小无关。 1 import
java.util.Scanner; 2 import java.ut...
分类:
其他好文 时间:
2014-05-09 16:21:31
阅读次数:
288
背包是一种不支持从中删除元素的数据集合。它的目的是帮助用例收集元素并迭代遍历所有收集到的元素。迭代遍历的顺序没有要求(实现代码中是后进先出)。使用链表以及泛型机制来实现可以达到最优设计目标:
(1)可以处理任意类型的数据; (2)所需的空间总是和集合的大小成正比; (3)操作所需的时间总是和集...
分类:
其他好文 时间:
2014-05-09 16:19:36
阅读次数:
274
栈是一种基于后进先出的数据集合。用链表实现比数组实现更加高效。使用链表以及泛型机制来实现可以达到最优设计目标: (1)可以处理任意类型的数据;
(2)所需的空间总是和集合的大小成正比; (3)操作所需的时间总是和集合的大小无关。×××××××××××××××××××××××××××××××
分类:
其他好文 时间:
2014-05-09 16:19:03
阅读次数:
325
判断单链表是否有环
假设两个指针分别为p1和p2,每循环一次只向前走一步,p2向前走两步,知道p2碰到NULL指针或者两个指针相等则说明有环
如果存在,start存放在圆环开始的节点...
分类:
其他好文 时间:
2014-05-09 14:12:54
阅读次数:
273
例:已知两个单链表head1和head2各自有序升序排列,请把他们合并成一个连表并依然有序,并保留原来所有节点假设以下两个链表:链表1:1->3->5链表2:2->4->6(1)比较1和链表2的第一个节点数据,由于15)和链表2在调用本过程,比较得到结果链表的第二个节点,即2与3比较得到2,此时合并...
分类:
其他好文 时间:
2014-05-09 13:08:43
阅读次数:
283
图的遍历主要有两种方法,第一种是之前博文中介绍过的“图的深度优先遍历”,简称DFS;另一种就是图的广度优先遍历(BFS),在本文中将进行简要探讨。
BFS要做的事,从给定点出发,遍历的一次探寻到所有顶点。其基本思路很容易理解,在此我们利用队列q来存储访问的顶点,用visited[]数组(初始化所有值...
分类:
其他好文 时间:
2014-05-09 10:06:35
阅读次数:
337
前言
集合是一种数据结构,在编程中是非常重要的。好的程序就是好的数据结构+好的算法。java中为我们实现了曾经在大学学过的数据结构与算法中提到的一些数据结构。如顺序表,链表,栈和堆等。Java
集合框架API是用来表示和操作集合的统一框架,它包含接口,实现类以及一些编程辅助算法。具体位于...
分类:
编程语言 时间:
2014-05-09 08:25:24
阅读次数:
374
基本C/C++、STL(vector、set、map、queue、string、algorithm)枚举、贪心、递归、分治、递推、模拟构造、位运算、常数优化数据结构队列、堆、栈、链表排序(插入、冒泡、快速、归并、堆、桶、基数)二分查找、散列表、并查集、哈夫曼树排序二叉树、左偏树、平衡树(Splay/...
分类:
其他好文 时间:
2014-05-09 08:10:36
阅读次数:
338
#include
using namespace std;
const int MAXQSIZE = 5;
//队列类
template
struct LinkList
{
T * data;//指向连续的数据存储区域
int front;//头指针 指向第一个元素
int rear;//尾指针 如果队列不为空指向最后元素的下一个位置
};
//构造一个空队列
template
void...
分类:
其他好文 时间:
2014-05-09 06:07:53
阅读次数:
248
题意:求长度不超过K的最大的连续序列的和
思路:采用单调队列,我们要求的是Max{sum[i]-sum[j]}(i-j#include
#include
#include
#include
using namespace std;
const int MAXN = 1000005;
const int INF = 0x3f3f3f3f;
int n,k;
int arr[MAXN],s...
分类:
其他好文 时间:
2014-05-09 01:57:07
阅读次数:
264