http://www.cnblogs.com/zhijianliutang/p/4113911.html
http://www.cnblogs.com/studyzy/archive/2009/01/07/1370937.html