2013年5月22日

摘要: Union and find 给定N个object,M个整数对(p,q),其意为p,q连接在一起。那么再给定(x,y),判断x,y是否连接。 解答: 纵观题意,有两个重要操作。 1.给定p,q,将其连接在一起。union(p,q). 2.判断p,q是否已经连接在一起。isconnected(p,q). 由以上思路,发展出以下几种算法: 1.快速查找算法(查找即判断是否连接) ... 阅读全文
posted @ 2013-05-22 09:17 书上一缕香 阅读(127) 评论(0) 推荐(0) 编辑

2013年3月28日

摘要: 学习的曲线总是曲折式前进,所以我记下当前对于算法和数据结构的一些心得,期待以后获得更高层次的理解之后,再来更新这一系列。 要掌握好基本的数据结构和算法,首先我们要对这些基本的数据结构和算法的应用背景非常了解,这样才能深入的理解它们可以做什么,为什么可以这么做,优点是什么,缺陷是什么。才算是基本掌握了数据结构和算法。等到再去磨练磨练熟练度,理解也会越来越深入,对它... 阅读全文
posted @ 2013-03-28 20:57 书上一缕香 阅读(157) 评论(0) 推荐(0) 编辑

2013年3月16日

摘要: 问题:自己管理栈来实现递归程序。找出通用的改写方法。解答思路:模拟递归程序的执行过程,并每次将递归当前层的调用现场手动压入栈和弹出栈。分析:举一个简单的例子来分析递归的调用过程,如factor(n) = n*factor(n-1).递归程序如下:int factor(int n){ if(n == 1) return 1; return n*factor(n-1);}其执行过程如下:由图可知,递归函数每一层的调用现场将被访问两次,并且符合“后进先出”的特点,这也是为什么要用栈。那么我们分析stage 0这一步都做了些什么:上图说明了在每一层,stage 0时执行的就是... 阅读全文
posted @ 2013-03-16 08:06 书上一缕香 阅读(1450) 评论(6) 推荐(0) 编辑

2013年3月7日

摘要: 写博客可能会想在自己本机上保存一份副本,所以研究了下,writer的本地缓存默认在C:\Documents and Settings\(用户名)\My Documents\My Weblog Posts这个目录里。恶心的是writer居然没有修改默认目录的设置。万一哪天重装机子,本地就没了- -。于是网上搜索了下,解决办法如下:1.将My Weblog Posts文件夹全部拷贝到想要保存它的位置,比如D:\Backup\2.在Windows官网下载一个junction的工具,这个工具就是个命令行,其作用是把两个文件夹链接起来。当你修改一个文件夹的内容时,另一个同时也会变化。和Linux下的li 阅读全文
posted @ 2013-03-07 17:41 书上一缕香 阅读(198) 评论(0) 推荐(0) 编辑
摘要: 1.递归遍历:struct node { int value; node* left; node* right;};void preOrder(node* root){ if(root == NULL) return; visit(root); preOrder(root->left); preOrder(root->right);}2.非递归遍历:先序:void preOrderNonrecursive(node* root){ stack<node* > s; s.push(root); while(!s.empty... 阅读全文
posted @ 2013-03-07 16:02 书上一缕香 阅读(243) 评论(0) 推荐(0) 编辑
摘要: #include <stdio.h>int main(){ printf("Hello,world!"); return 0;} 阅读全文
posted @ 2013-03-07 13:32 书上一缕香 阅读(120) 评论(0) 推荐(0) 编辑

导航