自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

zzran的专栏

学会等待。。。

  • 博客(7)
  • 资源 (2)
  • 问答 (1)
  • 收藏
  • 关注

原创 不用递归和辅助空间对二叉树进行遍历

递归和非递归的进行二叉树的遍历从某种意义上来讲都是需要辅助空间的。那么进行非递归的和不需要辅助空间的遍历会有这种可能吗?答案是肯定的,应用线索二叉树,这样就能把左子树或者右子树为空的节点利用起来,二叉树线索之后就可能找到某个节点的前区或者后继。一个含有n个节点的二叉树,可定会有n+1个指针是空的。所有利用这n+1一个指针就能将二叉树线索化而不遗漏任何一个节点。下面给出利用这种线索化来遍历二叉树

2013-06-18 14:08:58 3292

原创 判断图中是否包含欧拉路径或者欧拉环

欧拉路径的定义:对于无向图来说,欧拉路径就是通过每条边有且只有一次,如果遍历的起始点和终止点都是一个顶点的话,那么就说这个图存在欧拉环。上图中有三个例子,分别是欧拉路径和欧拉环,以及非欧拉路径。那么怎么来判断一个图中是否含有欧拉路径或者欧拉环呢。首先回想一下图的定义,图中有v个顶点,那么着v个顶点中有0个或者两个或者两个以上的顶点度数为奇数。接下来,求欧拉路径就相当于用笔画一个图,笔可

2013-06-16 16:00:07 9170

原创 判断一个给定的字符串通过循环移位是否可以包含另一个字符串

比如说给定字符串“ABCD"通过循环移位是否可以包含“CDAB”。有两种方法,一种方法就是通过创建另外一个字符串,这个字符串是两个“ABCD”的连接,然后应用kmp在新创建的字符串中查找"CDAB",这样的时间复杂度是O(n), 空间复杂度也是O(n),还有另外一种方法是可在O(n)时间内完成,下面给出代码:#include#include#includeusing namespac

2013-06-13 16:42:47 4549

原创 zig tag traversal a binary tree

#include#includeusing namespace std;typedef struct tree_node_s { int value; struct tree_node_s* lchild; struct tree_node_s* rchild;}tree_node_t;tree_node_t* createNode(int value) { tree_nod

2013-06-08 10:49:44 2413 1

原创 Length of the longest substring without repeating characters(dp)

给出一个字符串,找出这个字符串中最长连续的而且没有重复字符的子串,并返回它的长度。例如,对于字符串“BDEFGABEF”最长连续且没有重复字符的子串可以是“DEFGAB”或者“DEFGAB”,长度是6。对于字符串“BBBB”,它满足要求的字串的长度是1,即“B”。首先分析一下,对于给定长度的字符串,它一共有多少个字串呢? 子串数 = 长度为1的子串数+长度为2的子串数+ 。。。+长度为n的子串

2013-06-07 16:55:20 3239

原创 怎么判断一棵树的所有叶子节点都在同一层

给定一棵树,怎么判断它的所有叶子节点都在同一层,这种情况应该是完全二叉树的一种特例,如下图:如果去掉节点6的话,它是一棵完全二叉树,但是所有的叶子节点不在同一层,下面是层次遍历的一种方法:#include#includeusing namespace std;typedef struct tree_node_s { int value; struct t

2013-06-06 12:00:33 5903 1

原创 Connectivity in a directed graph

Given a directed graph, find out whether the graph is strongly connected or not. A directed graph is strongly connected if  there is a path between any two pair of vertices. For example, following is

2013-06-04 11:19:01 3709

an efficient implemention of double array trie

这个是一个double-array的实现,就是用数组来存储trie,以减少空间的利用率。

2013-01-06

单词资源文件

用于海量数据处理的英文单词,大概在1m左右,没有太大的。

2012-12-27

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除