字典树:
字典树 即Tire树,以一个空的头结点分若干的分支,来存放数据,虽浪费了大量内存,但是查找速度非常快。
匹配 时间复杂度 O(n) n = strlen(a);
字典树分 3步,建树、插入、查找
当然有时候,建树的选择是很重要的一点,尽量本着少往字典树上添加节点的原则,容易爆!!!
列入下面这题,用m建树,n来查找,即可AC,如果用n来建...
分类:
其他好文 时间:
2014-06-09 23:42:44
阅读次数:
295
#include using namespace std;struct Node{ Node
*next; int elem;};void creatList(Node* &head){ head = new Node; int elem;
cin>>elem; ...
分类:
其他好文 时间:
2014-06-09 16:07:55
阅读次数:
229
并查集经典题,但是太坑了,数据只有一组,用EOF读入无限WA,我就这么对着正确的代码查了半个多小时,次奥。把一个结点拆成3个结点分别代表属于A,B,C三类,对于X,Y同类,有如果XA->YA,XB->YB,XC->YC
所以直接把两两并起来,当然要判断能不能并对于X吃Y ,有 XA->YB ,XB-...
分类:
其他好文 时间:
2014-06-09 15:49:48
阅读次数:
212
poj2186Popular
Cows分析:直接求一下强连通分量,对于同一个强连通分量里面的结点状态是相同的,要求有多少个人被其他所有的人都认可,只有可能是拓扑排序的最后一个强连通的结点个数,判断一下其他节点是否都可以到该联通分量就ok了。
1 #include 2 #include 3 #in.....
分类:
其他好文 时间:
2014-06-08 21:44:25
阅读次数:
307
题目链接题意: 给定一棵二叉树, 判断是否为平衡二叉树, 这里的平衡二叉树指的是:每个结点的左右子树的深度之差不超过1。附上代码:
1 /** 2 * Definition for binary tree 3 * struct TreeNode { 4 * int val; 5 * ...
分类:
其他好文 时间:
2014-06-08 18:58:35
阅读次数:
194
题目链接求二叉树最小深度,最小深度指的是:从根节点走到最近的叶子结点的最短长度附上代码: 1 /**
2 * Definition for binary tree 3 * struct TreeNode { 4 * int val; 5 * TreeNode
*left; 6...
分类:
其他好文 时间:
2014-06-08 18:43:48
阅读次数:
220
循环链表是另一种形式的链式存贮结构。它的特点是表中最后一个结点的指针域指向头结点,整个链表形成一个环。
循环链表的操作
1,循环链表的新操作
2, 获取当前游标指向的数据元素
3, 将游标重置指向链表中的第一个数据元素
4,将游标移动指向到链表中的下一个数据元素
5,直接指定删除链表中的某个数据元素
CircleListNode* CircleList_DeleteNode(CircleList* list, CircleListNode* node);
CircleListNode* Ci...
分类:
编程语言 时间:
2014-06-08 17:04:24
阅读次数:
242
堆排序
// 测试堆排序
// @start:调整的起点
// @end:调整的终点,在堆排序的过程中,不断地减小调整区间,end参数起作用
void SiftDown(int arr[], int start, int end)
{
int i = start;
int j = 2*i + 1; // j记录的是i结点的左孩子
int temp = arr[i];
...
分类:
其他好文 时间:
2014-06-08 16:19:45
阅读次数:
187
很裸的模版题,不过Tarjan要好好多拿出来玩味几次
很有点巧妙呢,tarjan,大概就是当前结点和它儿子结点的羁绊
WA了俩小时,,,原因是,这个题是多数据的(还没告诉你T,用scanf!=EOF来控制结束),更重要的是和这个和Codeforces不一样,Codeforces的多组数据好像会重新开始程序似的,不用在程序里面写清零,但这个题是多数据用EOF来控制输入的,多数据在一个文件里都一次...
分类:
其他好文 时间:
2014-06-08 08:28:39
阅读次数:
190
双向链表也叫双链表,是链表的一种,它的每个数据结点中都有两个指针,分别指向直接后继和直接前驱。所以,从双向链表中的任意一个结点开始,都可以很方便地访问它的前驱结点和后继结点。一般我们都构造双向循环链表。
单链表的局限
1,单链表的结点都只有一个指向下一个结点的指针
2,单链表的数据元素无法直接访问其前驱元素
3,逆序访问单链表中的元素是极其耗时的操作...
分类:
编程语言 时间:
2014-06-08 02:16:06
阅读次数:
352