代码改变世界

随笔档案-2010年12月

二叉树的非递归遍历

2010-12-23 21:59 by MichaelYin, 5274 阅读, 收藏,
摘要: 二叉树的遍历如果使用递归调用基本没什么问题,这里主要是讲如何使用非递归方法实现二叉树的遍历。 由于递归调用程序实际上使用了栈来保存方法中的变量值,在非递归遍历的方法中我们需要基于栈的方法。先来看看这个方法 节点temp在这里是起一个标识的作用,首先沿根节点往左下方进行查找,将存在的节点压入栈,里面的那个while循环结束后栈的最顶端一定是一个null,所以栈pop一下,然后这时进行读取操作,读... 阅读全文

闲话动态KML

2010-12-21 16:06 by MichaelYin, 2532 阅读, 收藏,
摘要: 最近在Google Map开发中开发中用到了动态生成KML在地图中动态显示数据,下面来简单的把其中的知识点讲一下。 KML是一种采用XML 语法与格式的语言,它被用来描述地理信息,如点,线,多边形等等,可以被Google map和Google Earth等软件识别并显示。我们可以在Google Earth把我们感兴趣的一些地点标识出来,然后生成KML文件,通过分享这个文件来让别人在Google ... 阅读全文

算法学习之快速排序

2010-12-20 22:01 by MichaelYin, 357 阅读, 收藏,
摘要: 快速排序通常是用于排序的最佳实用选择,因为它的平均性能相当好。 快速排序和先前讲到的合并排序一样,体现了算法设计中的分治的思想。我们首先将问题进行分解,将数组划分成两个部分A[p…q-1]和A[q+1…r],使得A[p…q-1]中的元素小于等于A[q],然后分别解决前面一个数组和后面一个数组的排序,最后进行合并,由于这两个数组是就地排序(in place)的,所以不用像合并排序中一样进行过多的合... 阅读全文

由类能否包含自己说开去

2010-12-13 16:47 by MichaelYin, 2207 阅读, 收藏,
摘要: 下午在Coding的时候突然想到了一个问题,类到底能不能包含自己?在什么情况下能包自己? 当时正在实现一个类似链表的功能,在一个节点中需要有下个节点的引用的数据,比如像这样子的代码。 在Node中有一个Node类型的引用地址,用来找到这个节点的下一个节点。默认构造函数调用后会将data置0,Next置null,当时我写到这里突然想起来好像在哪里看到过类中包含类自己是不行的。于是在Console... 阅读全文

算法排序之堆排序

2010-12-08 23:06 by MichaelYin, 381 阅读, 收藏,
摘要: 堆排序的重点在于对堆的理解,首先堆是一种数组对象,同时,它也可以被视为一棵完全二叉树,树中的每个节点从上到下,从左到右和数组中的每个元素是一一对应的,二叉树的每一层都是填满的,除了最后一层以外。 比如数组中的第一个元素就是二叉树的根节点,第二个就是元素就是根节点的左边的子节点,而第三个节点就是根节点的右边的子节点,然后第四个节点就是根节点的左边的子节点的左边的子节点,这样以此类推。 通过给定的... 阅读全文

字符编码那些事儿

2010-12-06 16:57 by MichaelYin, 626 阅读, 收藏,
摘要: 这几天专门花时间好好看了下字符编码的东西,在这里写篇随笔把知识好好梳理一下。 讲到字符编码,还是从最基本的ASCII讲起咯。 在计算机刚开始使用时候,人们必须用计算机里面的01这样的二进制组合来表示一些基本的英文字母和字符,当然了,每个人都可以有自己的一套编码标准来完成这个看似简单的功能,不过,为了不同的计算机系统之间能够相互通信而不产生混乱,那么所有的计算机就必须采用相同的编码标准,所以美国... 阅读全文