摘要: 今年九月就要开始找工作了,感到压力巨大。回顾这些年所学的东西,零零散散,是懂非懂。很有必要归纳整理下,温故而知新。因此,需要有毅力来完成我自己定下的180天计划。 自己几天前头脑风暴了下,用思维导图大致整出了所需要的两块重要技能,分为两块,技术、非技术。因此,涅槃计划也是一样的。技术类编程语言类C 语言--------------为何不精通C? 系列C++语言----------C++ Annotation 数据结构、算法基本数据结构及算法面试题中常考的算法类型总结acm 题剖析设计模式操作系统Linux(着重)Windows计算机网络数据库mysql非技术类公务员行测题面试在温故的同时,同. 阅读全文
posted @ 2013-05-19 11:55 xield 阅读(195) 评论(4) 推荐(0) 编辑
摘要: 链表相关的面试题型总结及其个别实现对指针的掌握程度,是衡量一个程序员的基本功是否扎实的重要考量标准。而数据结构中的链表、二叉树等基本数据结构,是考核指针的最佳利器。本文稍微总结了下链表的主要考点,以备未来的求职。说在前面的注意事项首先,涉及到指针的编程,对于指针有效性的判断不可忽视,代码中一定要有对NULL指针的判断,这样代码才更加的鲁棒。其次,若对链表进行插入,删除操作,一定要注意更新head指针(和tail指针)的指向。最后,我们定义结点的数据结构为:struct Node{ int datum; Node* next;};先总结下我的心得首先,若是题目对空间复杂度没有什么要求... 阅读全文
posted @ 2013-06-06 23:29 xield 阅读(650) 评论(1) 推荐(1) 编辑
摘要: 这两天通读了一遍何海涛的书<剑指Offer:名企面试官精讲典型编程题>,很有收获,打算下一步的巩固提升思路就照着书中的思路来进行转身计划。今天先总结下第一章。首先,我觉得“面试官谈面试" 部分很不错,生动的面试官的期望提了出来,让我们能够有针对性的应对薄弱的知识点,所谓知己知彼么。对于初级程序员(应届生), 主要考察基本算法及数据结构; 对于高级程序员, 关注专业技能和项目经验认识你要应聘的公司,他在做什么,将要做什么;同时准备问题询问面试官回答面试官的问题前,先多沟通,确定所要解决的问题,写代码后不要急着上交,自己先寻些测试用例找出可能的bug技术,就是要脚踏实地的写代 阅读全文
posted @ 2013-06-03 22:56 xield 阅读(246) 评论(0) 推荐(0) 编辑
摘要: 二叉搜索树的复杂度为(lgN), 二叉搜索树就是已排序数列的二叉树表示法。二叉搜索树的定义是: 父节点大于等于左孩子,右孩子大于父节点。因此,若是遍历次序为(中序):左孩子,父节点,右孩子,那么我们得到的将是元素从小到大的排列。同时,最左结点最小结点,最右结点是最大结点。二叉搜索树还有定义的操作便是求前驱结点和后继结点。以后继结点为例: 若有右子树,则后继结点为右子树的最小结点;若无右子树,则后继结点为某个祖先父节点,其祖先结点(包括自身)为父节点的左孩子。以前驱为例: 若有左子树,则前驱结点为左子树的最大结点; 若无左子树,则前驱结点为某个祖先父节点,其祖先结点(包括自身)为父节点的右孩子。 阅读全文
posted @ 2013-06-02 15:40 xield 阅读(238) 评论(0) 推荐(0) 编辑
摘要: 排序,重要性不言而喻。 今天练手了快排,堆排序,和插入排序, 二分查找。 快排参考了 http://blogread.cn/it/article/612?f=sr ,写的不错! 可以看看。先总结下: 边界值很重要,一定要考虑到。说下快排,这个排序自诞生起,就引起了轰动,也名列十大经典算法之一。它主要分为两个步骤,划分和递归, 其中划分是算法的核心,递归是重要的思想。递归部分伪代码如下:1 quicksort(A[], p, r)2 if p < r3 q = partition(a, p, r)4 quicksort(a, p, q-1)5 qu... 阅读全文
posted @ 2013-05-31 22:43 xield 阅读(444) 评论(1) 推荐(0) 编辑
摘要: 顺序点初解为什么要谈到顺序点呢?源于前两天进行一问一答网的c++测试时,出现了一题:#include <iostream>using namespace std;int main(){ int a, b; a = 5; a = a + (a++); cout << a << endl; a = 5; b = a + (a++); cout<<b<<endl; return 0;}将输出什么结果?说真的,我一点头绪都没,难道不都是11吗? 而且,这种问题似乎在笔试的时候经常会考到! 很有必要解决掉。 今天逛CSDN论坛时,发现置顶的一篇 阅读全文
posted @ 2013-05-28 22:56 xield 阅读(155) 评论(0) 推荐(0) 编辑
摘要: c++ virtual初步解析总结: virtual主要用于实现多态,使用场合是: 通过基类指针操作子类,在运行期动态选择子类方法而实现了多态。虚函数和纯虚函数虚函数可以被子类重写, 纯虚函数必须被子类重写。 虚函数是实现多态所必需的。发生继承操作时,同时继承基类所有的可继承项(public or proteced修饰)。倘若基类方法未用virtual修饰,使用基类指针调用子类方法时,输出的将是基类的方法!因为在编译期时把基类指针指向子类,运行期仍是执行基类,所以调用的是基类方法;若采用virtual修饰,则是在运行期时动态选择子类方法,从而实现了多态。见 stackoverflow : ht 阅读全文
posted @ 2013-05-28 22:55 xield 阅读(368) 评论(0) 推荐(0) 编辑
摘要: 堆,是一个相当重要的数据结构,它是优先队列,堆排序,Dijkstra等算法的实现保证!堆的主要特性是:1、根结点是最大/最小的,而这个主要的区别,就是实现比较操作时是less or greater, 因此可以使用纯虚化 比较接口,把实现放到子类。 附: STL中采用的是模板默认参数的方法实现。2、需要两个表示大小的变量来标定堆or数组的大小。因为pop操作因让堆的有效长度变小,而数组的长度不变。3、堆的插入操作一般是插入到数组的末尾,这里最好用vector, 因为它可以在常数时间内尾插入数据且能够动态生长。 1 #include <vector> 2 #include <os 阅读全文
posted @ 2013-05-27 23:58 xield 阅读(841) 评论(0) 推荐(0) 编辑
摘要: 晚上和朋友出去小饮了几杯,调侃了下blablabla。。。现在有点晕乎乎的,文章可能很凌乱,算是很抱歉。下午实现了下链表形式的二叉树,顿时感觉数据结构的实现,理论和实际的差距还是很大的。要走的路还是很长远的。总结下,就是递归很重要,这个是解决树问题的核心钥匙!对于二叉树,很多实现是基于排序二叉树的线性表示,即可以根据父节点的索引直接定位到子节点的位置,即 parent*2 = leftChild, parent*2+1=rightChild等等,一切可以用公式表示。本文,我们采用指针形式来实现。每个数据结构的实现,首要是实现结点类的设计。根据需求,我们知道它有三个指针域,分别指向父节点,左结点 阅读全文
posted @ 2013-05-26 23:04 xield 阅读(374) 评论(0) 推荐(0) 编辑
摘要: STL中的栈和队列是基于deque实现的,本质是在stack/queue类内存在一个deque对象,让后stack/queue的成员方法调用下deque的个别接口,就自定义出来了栈和队列。因此这个实现我算在前一章的chain中就做了,本文就基于数组来实现下栈和队列。对于stack,只能对栈顶进行push和pop操作,算是最简单的。因此,我们可以把栈类的定义如下: 1 template<class T> 2 class MyStacked{ 3 protected: 4 T* elements; 5 int size; 6 int capa... 阅读全文
posted @ 2013-05-26 12:56 xield 阅读(226) 评论(0) 推荐(0) 编辑
摘要: 前两天忙着改Paper的参考文献,今天终于搞定了,稍微舒了一口气,预祝我的Paper能够顺利发出。今天早上要给大一的学弟讲C课程设计---航班订票系统。无奈时间不够,昨晚八九点才空下来有时间写代码,匆忙花点时间写好了,早上调试下Bug,就给学弟们讲去了。航班订票系统的要求:1)飞机信息及本飞机机票销售情况的存储结构。飞机信息:飞机ID,航空公司,出发地、目的地、机票销售情况。2)所有机票销售信息:飞机ID,机票号、购买者姓名、购买者身份证。3)飞机管理(新增航班、停开航班)4)飞机票查询(按目的地、按时间、按要求:靠窗、靠过道、n人连坐等)。5)已售票信息查询6)销售飞机票及办理退票7)信息的 阅读全文
posted @ 2013-05-25 23:22 xield 阅读(1263) 评论(0) 推荐(0) 编辑