09 2012 档案

摘要:进入漫漫求职季,也没有耐心认认真真做完CLRS的习题了。如果有幸得入不错的IT企业的话,下半年我会认真将力所能及的习题和代码补上。否则恐怕只能先搁置一段时间了,我相信我自己是不会放弃这条路的。我自己的专业方向,linux嵌入式我还是有些兴趣的,可惜木有项目经验。现在还是尽量努力学习软件设计方向,今年硕士毕业后,我不会再呆在学校了。即使进不了好的IT企业,我也会尽我的能力去不断学习,争取向这个方向发展。今天写网易策划的简历的时候,我确切的感受到自己人生的空白。大学以前,我并无什么志向。进了大学以后,自己的专业也不喜欢,大一大二还有些高中的精神,为了GPA还能努力一下,到了大三大四,很多课一点意思 阅读全文
posted @ 2012-09-25 23:14 生无所息 阅读(399) 评论(1) 推荐(0) 编辑
摘要:红黑树一种构建容器库时经常使用的数据结构(如std::map),其构成比较复杂,很难随手写出。所以正常情况下,我们会使用skiplist代替之。红黑树是一种特殊的平衡二叉查找树,它在普通二叉查找树的基础上添加了一个储存位来表示结点的颜色(Red or Black),红黑树确保没有一条路径会比其他路径长出两倍,因而是接近平衡的。红黑性质:①black or red;②root is always black;③leaf is always black;④if a node is red,two sons must both be black;⑤Everysimple pathfrom a giv 阅读全文
posted @ 2012-09-25 21:18 生无所息 阅读(238) 评论(0) 推荐(0) 编辑
摘要:搜索树是一种很常用的数据结构,支持search、minimum、maximum、predecessor、successor、insert和delete等多种动态集合的操作,经常被用来做字典或优先级队列。binary search tree的所有操作都与树的高度成正比,也就是O(h)。我们称一颗二叉树... 阅读全文
posted @ 2012-09-25 21:06 生无所息 阅读(344) 评论(0) 推荐(0) 编辑
摘要:图论看的头大…于是翻了翻抱佛脚必备书:《程序员面试宝典》,这书编的确实不怎么样,边边角角的题目有点多,有些题目的解答思路很不清晰,当做题库看看也就罢了。今天翻到一道标准容器复制含有指针成员的类导致重复解析的问题,专门回忆了下这方面的知识,在这里做个总结。C++最讽刺的地方就是“用指针实现了面向对象”这点,所以C++压根不是什么面向对象,说是面向指针更恰当一点。内存管理这块一直是C++最复杂的地方之一,也是很多人讨厌C++的最大原因之一(我猜C风格字符串是另外一个原因之一)。复制(或使用隐含复制的操作)含有指针成员的类,必须对指针成员做一些特殊的处理,主要方法包括以下几种:①值型类,在复制指针成 阅读全文
posted @ 2012-09-12 21:39 生无所息 阅读(3686) 评论(0) 推荐(0) 编辑
摘要:散列技术直接寻址表是对数组的一种简单扩展,适用于元素的关键字全域[0,1...m-1]范围较小的情况,每个槽对应一个关键字,如果槽k为NIL,说明没有关键字为k的元素。如果元素存在某种一致性而可以直接放在一个序列里,可以考虑直接在数组中存放元素,使用下标作为索引,这样直接寻址表就退化为数组。如果只需要数据结构支持Insert、Delete和Search三种操作,那么散列技术是最好的存放海量数据的方法,这种技术在数据库中被大量使用。简单来说就是使用散列函数将关键字映射到槽中,当需要搜索关键字时,直接如果有两个不同的关键字却散列到同一个槽中,这种情况被称为碰撞。为了避免碰撞,散列函数要尽可能随机, 阅读全文
posted @ 2012-09-05 19:04 生无所息 阅读(156) 评论(0) 推荐(0) 编辑
摘要:本章为基本数据结构的一些操作,很基础,当然也很重要。数据结构必须是泛型的,但是C对于泛型的支持只有通过void*强制转换,而且这也不是万能的,比较好的书籍可以参看《C interfaces and implementions》,当然这方面的代码是很成熟的。ADT在C中的实现大致通过三种方式:静态数组、动态数组和链表。如果不使用指针,那么必须用宏来实现Stack_Type的泛型,push,pop和top的操作数类型都和Stack_Type关联。静态数组的stack实现就是简单的:#define Stack_Type int#define Stack_Size 2048//static array 阅读全文
posted @ 2012-09-03 16:02 生无所息 阅读(175) 评论(0) 推荐(0) 编辑