FunctionGHW

立志成为真正程序员的码农,伪全栈,目前主要写C#

记得某本书上好像写过:C语言设计的理念是: 小即是美。不管他美不美吧, 反正他确实是个很小巧的语言。 也许就是因为"小"吧,在使用C的时候很多东西都是需要自己去代码实现,比如一些常用的数据结构, 真是烦透了。但是自己写的往往都是针对特定数据类型的,不够通用。可惜C没有泛型, 如果为每一个类型单独实现一套数据结构的库,估计是要疯掉了。看过一些库函数的声明之后, 得到了一点启发——把所有类型的数据都看作字节块,从而模拟泛型。 不过这样数据的类型在存取的过程中也就"丢失"了,因此我们需要自己去处理类型转换问题。 当然,为了实现通用性,我想"泛型"的性能可能会低一些。

继续阅读

今日无闲扯。难得发一篇新的,所以没有旧文链接。

正文

题目是这样的:如果已知二叉树的中序遍历序列和后序遍历序列, 能否构造出这个树并输出其先序序列?假设序列中不存在重复的值。

首先要知道,一棵二叉树的中序遍历序列中,其根节点分布在序列的"中间" ——在序列中,其任何左子树上的节点的位置都在根节点的左侧,任何右子树上的节点都在右侧, 因此找出中序序列中的根节点的位置就能确定其左子树和右子树的子(中序)序列。 而后序遍历的一个明显特点就是: 根节点始终在后序序列的末尾,即最右端的那个。 同一棵树(子树也是一棵树),不管中序后序,序列长度都是一样的。根据这些条件, 我们就能够得到一棵二叉树的根节点,以及左右两棵子树的中序序列和后续序列, 然后递归地找出左右子树的根节点。

对于叶子结点,把它看成是单节点的树,它的左右子树都是空树。

继续阅读

最近两个星期,用C语言写了几小段示例代码,外加几个算法题的实现, 无奈自身水平捉鸡,总是出错问题,尤其是有指针的地方,每次都要调试好大一会儿,当真是苦不堪言啊。 C语言确实是小巧而又强大,不过也是让人又爱又恨。水平低如我等目测是没办法在大学期间搞定它了。 为了生存,还是先学点C#,python之类的语言吧<^_^>。

正文

题目大概是这样的:
已知两个给定的整数数组,数组长度都是n, 记为x[n], y[n]。 两个数组已被排序(升序),求这2n个整数的中位数。

继续阅读

时光荏苒,如白驹过隙般匆匆而去。。。呵呵,先不感慨过去了。 不过眼看着从开学到现在的一个月过完,自己却被一些事缠着,还没算步入正轨, 我心里的滋味不怎么好受啊。大三下了,该忙考研的忙着自习,想找工作的也都忙着学"手艺", 就是一些平时让人觉得很懒散的人(不知道是不是表面假象),也都开始用功了。 当然,浑浑噩噩的也还是大有人在。我看着考研学霸那个劲头,不自觉地就想到了高三的生活, 心里有点怕怕的。还是趁着这学期多学点吧,以后工作好找些。

继续阅读

这几天浏览了很多人的博客,发现似乎有这么个规律: 大神的blog中代码很少甚至没有一行代码,且大多是写一些认真思考出来的东西, 而像我这样的新手blog好多都是"贴代码",有时候连两句"废话"都懒得扯。

莫非水平越高 代码 在博客内容中所占的比例就越少? 那就努力多写点思考的"成果"吧,也许这就是 大神之路 吧。

正文

这次整理的是我第一次用C写的文件复制程序。 那时候为了理解 流(Stream) 这个东西也算是费了心思了, 印象最深刻的便是把 流 比作 管道,数据通过管道流通。 到现在也不敢说完全理解,对新手而言,抽象的概念远不如具体的代码让人安心。

对这些抽象的概念,我的一点点体会就是, 一时不能理解没什么关系,多写代码体验一下,多思考,慢慢的也就悟出来了. 也许就像在 《.Net4.0面向对象编程漫谈》 一书中听金老师说的那样: 学习编程,大家都在"盲人摸象"。 我想,摸得多了,也就知道"大象"是什么样了。

继续阅读

最近整理旧blog的时候一直在想:要不要带上原文链接。现在决定还是加在文章最后吧,既然是自己写的(尽管很水),那么就留着对比一下吧,看看整理后的文章有多少提高。

 

这次的也是《数据结构基础(C语言版)(第2版)》(Fundamentals of Data Structures in C, 2nd)的一个练习题:给定n个布尔变量,打印所有可能的真值组合。 相当于求长度为n的位串有多少种。旧文用的方法太蛋疼了,位串长度稍稍增大,运行时间就变得不可接受了(那个时候还是图样啊),现在我尝试着写个好一点的。

继续阅读

[旧文整理]Horner规则的小题目

本来打算最近好好整理几篇博客的,但是最近忙于学校的实习(其实感觉就像报了个培训班),蛋疼死了。看着博客那么空就先整理篇简单的吧,呵呵。

《数据结构基础(C语言版)(第2版)》(Fundamentals of Data Structures in C, 2nd) 看到的一个小题目——Horner规则。一个递归版本,一个迭代版本,原来是两篇博文(好吧,纯属凑数)。不过这个递归算是我首次尝试写递归程序了。其实感觉迭代比递归更好,毕竟程序太小。重在思想吧,递归的形式确实简洁点。

继续阅读

新blog开张第一篇

新博客注册成功,闲扯两句!<^_^>

听朋友介绍找到了is-Programmer.com,觉得功能设计挺好,比起csdn,也更合口味,故决定将原来的blog搬到这里来。

虽然本人从写博客到现在不到一年,一共憋出烂文十余篇,但觉得还是得厚脸皮写下去吧,哈哈。毕竟当时鼓起勇气开个人博客的目的是学习:写自己的博客,让他们评论去吧!——我是写给自己看的,只要自己努力就行,嗯,嗯。

现在起我会慢慢把原来的文章重新整理到新博客上,顺便也重新研究下以前的"成果"吧。