2012年8月23日

C语言中结构体的直接赋值

摘要: 一直记得C语言中,结构体是不可以直接赋值的。我问了三个同学,都说在C++中可以,在C语言中不可以,需要逐一成员赋值或者用memcpy函数。我测试了一下如下的程序:[cpp] view plaincopyprint?#include <stdio.h>#include <stdlib.h>struct test { int a; int b; char ss[10]; }; int main() { struct test t1 = {1, 2, "hello"}; struct test t2; t2 = t1; printf("%d, % 阅读全文

posted @ 2012-08-23 22:17 天外飞仙2 阅读(783) 评论(0) 推荐(0)

(MS面试题) 公共最近父节点(LCA)的O(n)算法

摘要: 这个题目出现在MS公司的一次面试题当中。公共最近父节点,也叫公共最近祖先(Least Common Ancestors),就是寻找二叉书中,两个结点最近的祖先结点。在网上查找资料的时候,看到有Tarjan离线算法,过程比较复杂,我自己写了一个复杂度O(n)的算法,思路比较清晰,算法的长度也只有10行左右。经过简单的测试,可以找到正确结果。欢迎大家指正。整个过程是一次后续遍历二叉树的过程,在遍历的过程中,会得到所有公共父结点,代码中采用了flag表示已经找出了最近的父节点,从而取消之后得到的更远的父节点赋值。从而返回最近的父节点。该方法可以在小范围的修改上,编程寻找多个结点的最近父节点算法。LC 阅读全文

posted @ 2012-08-23 22:17 天外飞仙2 阅读(167) 评论(0) 推荐(0)

线程池的设计与测试

摘要: 编写了一个最基本的线程池类,处理用c_work表示的工作任务。C++还很不熟练,欢迎会C++的提出宝贵的修改意见。程序有注释,所以应该很好读懂。测试程序在下面。[cpp] view plaincopyprint?/////////////////////////////////////////////////////////线程池类 ///////////////////////////////////////////////////////#include <pthread.h>#include <stdlib.h>#include <stdio.h>#i 阅读全文

posted @ 2012-08-23 22:16 天外飞仙2 阅读(120) 评论(0) 推荐(0)

【读书笔记】代码大全

摘要: 2012-05-01 15:24675人阅读评论(0)收藏举报1.软件构建即编程,主要包括编码与调试、详细设计、规划构建、单元测试、集成、集成测试。构建是软件开发的核心活动,主要精力集中之处,产物是源代码。2.软件的隐喻——建筑3.三思而后行:前期准备(设计蓝图和建筑许可证在软件业的等价物,包括问题/产品定义、需求分析、架构)——目的:尽早发现并处理问题,识别并降低风险3.1 前期准备的重要性:类比在一个被污染了的环境中,水虱在受到核沾染的水中游泳,鲫鱼体内积聚了滴滴涕,而沙丁鱼生活的水域又遭受了石油污染,那么,不幸的海鸥由于处在食物链的最后一环,因此,它吃的不仅仅是沙丁鱼体内的石油,还有鲜鱼 阅读全文

posted @ 2012-08-23 22:11 天外飞仙2 阅读(152) 评论(0) 推荐(0)

【读书笔记】企业应用架构模式——并发、事务与锁

摘要: 一、并发问题的产生多线程/进程同时操作(读/写)同一数据二、并发问题的种类丢失更新(lost update)第一类更新丢失(回滚丢失): 当2个事务更新相同的数据源,如果第一个事务被提交,而另外一个事务却被撤销,那么会连同第一个事务所做的跟新也被撤销。也就是说第一个事务做的跟新丢失了。第二类更新丢失(覆盖丢失): 第二类更新丢失实在实际应用中经常遇到的并发问题,他和不可重复读本质上是同一类并发问题,通常他被看做不可重复读的特例。当2个或这个多个事务查询同样的记录然后各自基于最初的查询结果更新该行时,会造成第二类丢失更新。因为每个事务都不知道不知道其他事务的存在,最后一个事务对记录做的修改将覆盖 阅读全文

posted @ 2012-08-23 22:04 天外飞仙2 阅读(143) 评论(0) 推荐(0)

导航