04 2017 档案

摘要:在Linux中,如果man -s2 open, 我们看到两种不同的函数原型声明: 大约14年前(刚迈出大学校园没多久),第一次看到这样的声明的时候,我很纳闷,难道gcc能像g++一样支持c++的重载(overload)?当时没搞明白,反正能编译通过,就没深究(当然那时候也没能力深究)。什么是重载?所 阅读全文
posted @ 2017-04-28 16:11 veli 阅读(1105) 评论(0) 推荐(0)
摘要:对单链表排序,通常有两种方法。(PS:考察一个程序员的C语言编程功底,通常看他是否能娴熟地操作链表就知道了。当然,实际C编程中我们并不需要去重新实现链表,无论是Linux还是Solaris, 都有双向循环链表的标准实现。) 方法1:将每一个结点的内存地址保存到额外的数组中(也就是将链式存储转化为顺序 阅读全文
posted @ 2017-04-26 19:48 veli 阅读(3667) 评论(0) 推荐(0)
摘要:上一节讲了基数排序(Radix Sort),这一节介绍桶排序(Bucket Sort or Bin Sort)。和基数排序一样,桶排序也是一种分布式排序。 桶排序(Bucket Sort)的基本思想 在每一个桶中,如果采用链式存储的话,1.和2.可以合并在一起操作,也就是在分发的过程中保证每一个桶里 阅读全文
posted @ 2017-04-24 20:30 veli 阅读(762) 评论(0) 推荐(0)
摘要:单链表翻转很容易理解,例如: 输入: NODE1->NODE2->NODE3->NODE4->NODE5->NULL 输出: NODE5->NODE4->NODE3->NODE2->NODE1->NULL 那么,定义单链表如下: (为简单起见,将data字段定义为int, 当然实际应用中data很可 阅读全文
posted @ 2017-04-16 09:25 veli 阅读(921) 评论(0) 推荐(0)
摘要:今天在给儿子看笔记本上的照片的时候,偶然发现了2009年手绘的一张a+b+c的N次方展开图,故写下面的博客以记之,为年轻时代的我点个赞! 20年前的我,一个充满激情的且富有专注力的数学发烧友! 10年前的我,一个无知者无畏的好写代码的疯狂的程序员! 而现在的我,一个被生活荡平了棱角的但是依然坚持理想 阅读全文
posted @ 2017-04-14 22:08 veli 阅读(22400) 评论(1) 推荐(3)
摘要:在C语言中,一个32位的整数能表征32种状态。那么,要将某几种特定的状态清除掉,也就是将整数对应的某几位清除掉,有固定套路吗? Absolutely yes! 固定套路如下: FLAGS &= ~( X | Y | Z ) /* * 1. N = X | Y | Z; * 2. M = ~N; * 阅读全文
posted @ 2017-04-13 20:37 veli 阅读(6270) 评论(0) 推荐(0)