2010年6月28日
摘要: 讨论一什么是野指针?  一个母亲有两个小孩(两个指针),一个在厨房,一个在卧室,(属于不同的代码块,其生存期不同)母亲让在厨房的小孩带一块蛋糕(指针指向的对象)给在卧室的小孩,这样在卧室的孩子才肯写作业。但这个在厨房的小孩比较淘气,他在走出厨房时自己将蛋糕吃了,没能带出来。而在卧室的没有吃到蛋糕,所以不肯完成他的作业。结果母亲却不知道卧室的孩子没有吃到蛋糕,还以为作业完了。结果第二天她就被老师召唤... 阅读全文
posted @ 2010-06-28 16:41 chao_yu 阅读(17548) 评论(4) 推荐(9) 编辑
摘要: 十四、排序(Sort)这可能是最有趣的一节。排序的考题,在各大公司的笔试里最喜欢出了,但我看多数考得都很简单,通常懂得冒泡排序就差不多了,确实,我在刚学数据机构时候,觉得冒泡排序真的很“精妙”,我怎么就想不出呢?呵呵,其实冒泡通常是效率最差的排序算法,差多少?请看本文,你一定不会后悔的。1、冒泡排序(Bubbler Sort)前面刚说了冒泡排序的坏话,但冒泡排序也有其优点,... 阅读全文
posted @ 2010-06-28 15:19 chao_yu 阅读(4169) 评论(0) 推荐(2) 编辑
摘要: 十三、左偏树(Leftist Tree)树这个数据结构内容真的很多,上一节所讲的二叉堆,其实就是一颗二叉树,这次讲的左偏树(又叫“左翼堆”),也是树。二叉堆是个很不错的数据结构,因为它非常便于理解,而且仅仅用了一个数组,不会造成额外空间的浪费,但它有个缺点,那就是很难合并两个二叉堆,对于“合并”,“拆分”这种操作,我觉得最方面... 阅读全文
posted @ 2010-06-28 15:12 chao_yu 阅读(7739) 评论(0) 推荐(1) 编辑
摘要: 十二、二叉堆(Binary Heap)经历了上一篇实现AVL树的繁琐,这篇就显得非常easy了。首先说说数据结构概念——堆(Heap),其实也没什么大不了,简单地说就是一种有序队列而已,普通的队列是先入先出,而二叉堆是:最小先出。这不是很简单么?如果这个队列是用数组实现的话那用打擂台的方式从头到尾找一遍,把最小的拿出来不就行了?行啊,可是出队的操作是很频繁的,而每次都得打一... 阅读全文
posted @ 2010-06-28 15:08 chao_yu 阅读(8156) 评论(1) 推荐(0) 编辑