![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
ygqwan
这个作者很懒,什么都没留下…
展开
-
有向图的DFS遍历及判断是否有环(算法导论)
#include #include #include #include #include #include using namespace std;const int MAX = 1000;int color[MAX];int Time;bool is_DAG; // 分别是时间撮,是否有环int first[MAX],last[MAX]; // 最先被访问的时间撮,原创 2013-04-29 14:14:08 · 8584 阅读 · 4 评论 -
nyoj_20 吝啬的国度
题目连接:点击打开链接邻接表中的节点储存的有用信息有两点==关联数据域:1:节点的数据域的父亲是谁==哪一点(数据域)指向我,需要注意的是这里的父亲不是指父节点;无用信息就是 节点与节点之间的指针域数据;#include#include#include#includeusing namespace std;const int MAX=100001;typed原创 2012-08-03 16:03:55 · 709 阅读 · 0 评论 -
并查集
等价关系与等价类从数学上看,等价类是一个对象(或成员)的集合,在此集合中的所有对象应满足等价关系。若用符号"≡"表示集合上的等价关系,那么对于该集合中的任意对象x,y, z,下列性质成立:1、自反性:x ≡ x2、对称性:若 x ≡ y 则 y ≡ x3、传递性:若 x ≡ y 且 y ≡ z 则 x ≡ z因此,等价关系是集合上的一个自反、对称、传递的关系转载 2012-08-03 19:03:45 · 689 阅读 · 0 评论 -
nyoj_42 一笔画问题
题目连接:jyoj_42(一笔画问题)题意:zyc从小就比较喜欢玩一些小游戏,其中就包括画一笔画,他想请你帮他写一个程序,判断一个图是否能够用一笔画下来。规定,所有的边都只能画一次,不能重复画。思路:(1).用搜索或者并查集判断是否连通 (2).用欧拉图判断是否可以一笔走完 注意:并查集的集合都是用树作为储存结构的,所原创 2012-08-04 10:23:47 · 11727 阅读 · 0 评论 -
线段树模板
#include #include #include using namespace std;const int SIZE = 10010;struct node // the node of line tree{ int i,j; // 区间范围 node * lson; node * rson; int count; // 线段覆盖条数转载 2013-03-30 16:39:33 · 779 阅读 · 0 评论 -
递归二叉树的建立于遍历
递归实现二叉树的建树和遍历#include #include #include using namespace std;#define TRUE 1#define FALSE 0#define OK 1#define MAXSIZE 100typedef int Status;typedef int Elemetype;typedef struct BiNode{ E原创 2013-03-07 11:31:35 · 873 阅读 · 0 评论 -
二叉树的操作
树是一种重要的非线性数据结构,是以分枝关系定义的层次结构 基本术语: 树的遍历:指对树中所有结点的系统的访问,即依次对树中每个结点访问一次且仅访问一次! 树的三种遍历方式:1.前序遍历——先访问树根n,然后依次前序遍历T1,T2,……,Tk。转载 2012-07-30 18:28:37 · 942 阅读 · 0 评论 -
优先队列
基本操作:empty() 如果队列为空返回真pop() 删除对顶元素push() 加入一个元素size() 返回优先队列中拥有的元素个数top() 返回优先队列对顶元素在默认的优先队列中,优先级高的先出队。在默认的int型中先出队的为较大的数。使用方法:头文件:#include 声明方式:1、普通方法:转载 2012-07-31 21:27:48 · 485 阅读 · 0 评论 -
c++中栈,队列的函数操作
队列:#include申请队列:queueq;判队空:q.empty();获取队头元素:q.front();入队:q.push();出队:q.pop();a栈:#include申请栈:stacks;入栈:s.push();c出栈:s.pop();f获取栈顶元素:s.top();判栈空:s.empty();z原创 2012-08-13 10:47:17 · 12198 阅读 · 4 评论 -
nyoj_257 郁闷的c小加
链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=257思路:1.用栈作为数据结构,把输入的数据放入栈中,或者直接输入一个字符操作一个字符,也就是把输入的字符串顺序的扫描一遍;2。输入的字符扫描一遍:(1)。.如果扫描到的的是操作数(比如0-9),那么直接输出;(2)。如果是扫描到的字符是“(”,那么直接放入栈中,不进行其它原创 2012-08-14 16:03:15 · 1172 阅读 · 0 评论 -
后缀表达式(逆波兰式)、中缀表达式的转换与求值
/***********************************************************************************************************************一、把中缀表达式转换为后缀表达式算法的基本思路是从头到尾地扫描中缀表达式中的每个字符,对于不同类型的字符按不情况进行处理。1、先定义一个工作数组,用来存转载 2012-08-13 10:00:39 · 1778 阅读 · 0 评论 -
nyoj_55 懒省事的小明
nyoj :连接点击打开链接数据比较大和一个无语的错误老是wa,再就是利用了优先队列,但是注意的是每次队列中都会遗留一个元素,需要每次都把释放出来,不然就等着wa到底把。 #include#include#include#includeusing namespace std;struct cmp{ bool operator()(long long x,long long原创 2012-08-01 00:25:04 · 1184 阅读 · 0 评论 -
邻接表与逆邻接表(数组实现)
引用头文件:string.h使用宏定义:#define CLR(arr,val) memset(arr,val,sizeof(arr))使用说明:每次使用前必须要先调用Init()函数,AddEdge()用来加边。#include #include #include #include #include #include using namespace std;con原创 2013-05-10 09:41:19 · 6301 阅读 · 0 评论