摘要:1. void 和void* 的使用 void 意思是无类型,void* 意思是无类型指针,可以指向所有数据类型。 (1) void 主要用于对函数参数和返回值的限定,加上void 限定则表明该函数不接受参数或者无返回值(因为在C语言中,即使函数声明时无参数,在函数调用时传进参数是不会报错的,即使函... 阅读全文
python实现简单爬虫(二)---- 使用urllib等python模块
2014-07-22 02:55 by 凝月流风, 357 阅读, 0 推荐, 收藏, 编辑
摘要:之前使用scrapy实现了一个超级简单的爬虫工具,用于抓取豆瓣上面所有的编程书籍信息(由于不需要爬取整个页面的所以链接,所以不需要用到BFS or DFS,只实现顺序抓取下一页) 这次使用的是python自带的urllib 和urllib2等python模块实现,同样以豆瓣上面的爱情电影信息作... 阅读全文
python实现爬虫(一)--- Scrapy框架抓取豆瓣书籍信息
2014-07-20 04:11 by 凝月流风, 2022 阅读, 0 推荐, 收藏, 编辑
摘要:Scrapy是一个用python实现的开源爬虫框架,简单易用,功能强大,只需要在框架的基础上自定义自己的分析规则即可,具体如何新建工程等都在官方文档上面讲解得非常清楚,官方文档tutorial(http://doc.scrapy.org/en/latest/intro/tutorial.html... 阅读全文
《javascript DOM 编程艺术》学习笔记(一)
2014-05-20 01:48 by 凝月流风, 273 阅读, 0 推荐, 收藏, 编辑
摘要:书籍已经看完了前六章的内容,有了一定的编程基础后觉得本书内容相对来说过于简单,应该是完全针对于初学者的(或者如作者所说是写个Web设计师的),作者在表述一个问题,一句代码都解释得非常啰嗦与重复,不过从书中学习到更多的,也是作者想让读者体会的是让大家理解DOM脚本编程技术背后的思路和原则,作者特别... 阅读全文
二项堆学习笔记(未完成)
2013-12-31 17:11 by 凝月流风, 225 阅读, 0 推荐, 收藏, 编辑
摘要:二项堆: 1.二项堆是由一些二项树连接而成,每一棵二项树都遵循最小堆性质(即关键字的节点大于等于其父亲几点) 2.对任意的度数k,一个二项堆至多有一棵二项树的根度数为k (说明一个二项堆最多只有lgn+1棵二项树, 将n写成二进制,每一个值为1的位对应一棵二项树); 二项堆中的各二项树的根被组织成一个链表,称为根表,且各根的度数是严格递增的操作: 1.建堆操作:Make-Heap 时间复杂度: O(1) 2.返回最小元素: Minumum lgn 过程:扫描一遍根表即可找出最小值,每棵二项树的最小值都在根节点处; 3.合并两个二项堆: Union lgn 合并过程:先... 阅读全文
红黑树学习笔记
2013-12-25 02:48 by 凝月流风, 262 阅读, 0 推荐, 收藏, 编辑
摘要:从上学期就一直打算写出红黑树,但是由于能力太水,插入操作始终无法看明白,最近学习数据结构重新将红黑树的插入操作看了一遍,结合《算法导论》,《data structures and programing design in C++》 和侯捷的《STL源码》,终于弄清楚插入操作中保持树结构的几种情况,虽然这三本书在分类上有些许的差别,但本质的方法还是一样的。我还是根据算法导论将其分为3种情况(STL是分为4种情况):首先必须明白的情况是:每次插入节点的都设为红条件,如果需要保持红黑树结构时,则必然是新增节点的父亲节点也是红色,而且祖父节点必须是黑色(因为未插入前是一棵符合要求的红黑树) 1.... 阅读全文
AVL树
2013-12-03 01:55 by 凝月流风, 276 阅读, 0 推荐, 收藏, 编辑
摘要:之前学习AVL树,便照着书上(《Data structure and program design in C++》)的插入代码敲了一遍加深印象(去掉书上的继承)。1.AVL树是一种平衡二叉树,通过保持每一个节点的两棵子树的高度差不能超过1来保持树的平衡性。2.平衡性的保持:当插入新节点时,就可能破坏树的平衡性,针对某一个平衡性被破坏的节点的平衡操作(假设子树已经平衡,递归操作)有4种情况: case1:插入后左子树更高且左子树的左子树比右子树高,此时进行右旋操作 case2:插入后左子树更高且左子树的右子树比左子树高,此时进行双旋转操作 ... 阅读全文
杭电ACMsteps 3.2.3 Super Jumping! Jumping! Jumping!
2013-11-30 14:53 by 凝月流风, 182 阅读, 0 推荐, 收藏, 编辑
摘要:题目要找出一个player从start 位置到 end位置途中所经过的点的权值之和的最大值,并且经过的点必须严格递增; 可以将start作为位置0, end作为位置n+1; 用f[i] 表示到达i位置时所取得的最大和,设集合A = {j 2 #include 3 using namespace std; 4 const int maxn = 1010; 5 int f[maxn]; 6 int main() 7 { 8 int i, j, n, v[maxn]; 9 while (cin>>n && n) {10 for (i = 1; i > v[i];12 阅读全文
ACM steps 3.2.3 Super Jumping! Jumping! Jumping!
2013-11-30 14:34 by 凝月流风, 192 阅读, 0 推荐, 收藏, 编辑
摘要:题目要找出一个player从start 位置到 end位置途中所经过的点的权值之和的最大值,并且经过的点必须严格递增; 可以将start作为位置0, end作为位置n+1; 用f[i] 表示到达i位置时所取得的最大和,设集合A = {j 2 #include 3 using namespace std; 4 const int maxn = 1010; 5 int f[maxn]; 6 int main() 7 { 8 int i, j, n, v[maxn]; 9 while (cin>>n && n) {10 for (i = 1; i > v[i];12 阅读全文
杭电ACMsteps 3.2.2 Common Subsequence
2013-11-30 13:54 by 凝月流风, 284 阅读, 0 推荐, 收藏, 编辑
摘要:最长公共子序列,动规经典题 f[i][j] = max {f[i-1][j], f[i][j-1], f[i-1][j-1]+(s1[i] == s2[j])} #include #include using namespace std;const int maxn = 1010;int f[maxn][maxn];inline int max(int x, int y, int z) { if (x > y) return x > z ? x : z; else return y > z ? y : z; }int main(){ string s1, s2; int .. 阅读全文