1基本数据结构基本数据结构有:数组。顺序存储,可随机访问。有最快的查询速度,插入、删除元素非常麻烦。链表。存储相对位置,可按节点依次访问。查询较慢,插入、删除节点较快。有单向链表、双向链表等。块状链表。数组和链表结合。栈和队列。树。有二叉树、平稀树、B树等。堆。有顺序的树。散列表。哈希表,即map。...
分类:
其他好文 时间:
2014-07-10 12:44:03
阅读次数:
164
TreeMap 的实现就是红黑树数据结构,也就说是一棵自平衡的排序二叉树,这样就可以保证当需要快速检索指定节点。TreeSet 和 TreeMap 的关系为了让大家了解 TreeMap 和 TreeSet 之间的关系,下面先看 TreeSet 类的部分源代码: public class TreeSe...
分类:
其他好文 时间:
2014-07-10 12:06:58
阅读次数:
198
简介设计一种堆结构像二叉堆那样高效的支持合并操作而且只使用一个数组似乎很困难。原因在于,合并似乎需要把一个数组拷贝到另一个数组中去,对于相同大小的堆,这将花费O(N)。正因为如此,所有支持高效合并的高级数据结构都需要使用指针。像二叉堆那样,左式堆也有结构性和堆序性。不仅如此,左式堆也是二叉树,它和二...
分类:
其他好文 时间:
2014-07-10 11:34:03
阅读次数:
373
Collection框架集合框架(Collection Framework)泛指java.util包的若干个类和接口.如Collection,List,ArrayList,LinkedList,Vector(自动增长数组),HashSet,HashMap等.集合框架中的类主要封装的是典型的数据结构,...
分类:
其他好文 时间:
2014-07-10 11:29:24
阅读次数:
249
银行家算法:银行家算法是一种最有代表性的避免死锁的算法。又被称为“资源分配拒绝”法。银行家算法中的数据结构:(1)可利用资源向量Available。这是一个含有m个元素的数组,当中的每个元素代表一类可利用的资源数组,其初始值是系统中所配置的该类所有可用资源的数目,其数值随该类资源的分配和回...
分类:
其他好文 时间:
2014-07-10 00:22:48
阅读次数:
211
一个单词单词字母交换,可得另一个单词,如army->mary,成为兄弟单词。提供一个单词,在字典中找到它的兄弟。描述数据结构和查询过程。#include #include #include using namespace std;void add(unsigned int count[],char ...
分类:
其他好文 时间:
2014-07-07 20:57:31
阅读次数:
244
本来以为这题能用并查集做的,但一想不对例如A-> B,A->C如果用并查集的话B与C就不能连了,但实际B可以是C的徒弟,所以这题是考拓扑排序。#include#includeint d[105],map[105][105],vis[105];int main(){ int i,j,k,f,n,...
分类:
其他好文 时间:
2014-07-07 18:32:26
阅读次数:
176
1. 栈(stack)这种数据结构在计算机中是相当出名的。栈中的数据是先进后出的(First In Last Out, FILO)。栈只有一个出口,允许新增元素(只能在栈顶上增加)、移出元素(只能移出栈顶元素)、取得栈顶元素等操作。在STL中,栈是以别的容器作为底部结构,再将接口改变,使之符合栈的....
分类:
其他好文 时间:
2014-06-30 13:53:53
阅读次数:
185
为什么选择跳表目前经常使用的平衡数据结构有:B树,红黑树,AVL树,Splay Tree, Treep等。想象一下,给你一张草稿纸,一只笔,一个编辑器,你能立即实现一颗红黑树,或者AVL树出来吗? 很难吧,这需要时间,要考虑很多细节,要参考一堆算法与数据结构之类的树,还要参考网上的代码,相当麻烦。用...
分类:
其他好文 时间:
2014-06-30 12:39:53
阅读次数:
257
字典树+并查集。 1 #include 2 #include 3 #include 4 5 #define MAXN 500005 6 #define MAXL 11 7 #define TRIEN 26 8 9 typedef struct Trie { 10 ...
分类:
其他好文 时间:
2014-06-30 12:36:50
阅读次数:
224