摘要: 纸上谈兵05 树, 二叉树, 二叉搜索树作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明。谢谢!树的特征和定义树(Tree)是元素的集合。我们先以比较直观的方式介绍树。下面的数据结构是一个树:树有多个节点(node),用以储存元素。每个节点可以有多个子节点(children),而该节点是相应子节点的父节点(parent)。比如说,3,5是6的子节点,6是3,5的父节点;1,8,7是3的子节点, 3是1,8,7的父节点。树有一个没有父节点的节点,称为根节点(root),如图中的6。没有子节点的节点称为叶节点(leaf),比如图中的1,8 阅读全文
posted @ 2013-03-17 17:57 小薇林 阅读(179) 评论(0) 推荐(0) 编辑
摘要: 纸上谈兵04 队列 (queue)作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明。谢谢!队列(queue)是又一个简单而常见的数据结构。队列也是有序的元素集合。队列最大的特征是First In, First Out (FIFO,先进先出),这一点与栈(stack)形成有趣的对比。队列在生活中很常见,排队买票、排队等车…… 先到的人先得到服务并离开队列,后来的人加入到队列的最后。队列是比较公平的分配有限资源的方式,可以让队列的人以相似的等待时间获得服务。队列支持两个操作,队首的元素离开队列(dequeue),和新元素加入队尾(enqu 阅读全文
posted @ 2013-03-17 17:35 小薇林 阅读(234) 评论(0) 推荐(0) 编辑
摘要: 纸上谈兵03 栈 (stack)作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明。谢谢!栈(stack)是简单的数据结构,但在计算机中使用广泛。它是有序的元素集合。栈最显著的特征是LIFO (Last In, First Out, 后进先出)。当我们往箱子里存放一叠书时,先存放的书在箱子下面,我们必须将后存放的书取出来,才能看到和拿出早先存放的书。 栈中的每个元素称为一个frame。而最上层元素称为top frame。栈只支持三个操作, pop, top, push。pop取出栈中最上层元素(8),栈的最上层元素变为早先进入的元素(9 阅读全文
posted @ 2013-03-17 17:31 小薇林 阅读(236) 评论(0) 推荐(0) 编辑
摘要: 二叉树及二叉树的遍历二叉树(binary tree)二叉树的定义 二叉树的定义:树的度为2的树。 二叉树的递归定义:二叉树或者是一棵空树,或者是一棵由一个根结点和两棵互不相交的左子树和右子树所组成的非空树,而左右子树又都是一棵二叉树。二叉树的性质 1.第i层上至多有2的i-1次方个结点。 2.深度为h的二叉树至多有2的h次方减1个结点。 3.每一层都满的二叉树称为满二叉树,只在最后一层右边缺若干个结点的树称为完全二叉树。 (对结点的编号通常都是从满二叉树的树根开始,从上到下从左到右编号)。 完全二叉树的重要性质: 根结点序号为i=1的情况下: 1.编号为i的结点,左孩子编号为... 阅读全文
posted @ 2013-03-17 17:23 小薇林 阅读(257) 评论(0) 推荐(0) 编辑
摘要: 纸上谈兵02 表 (list)作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明。谢谢!表表(list)是常见的数据结构。从数学上来说,表是一个有序的元素集合。在C语言的内存中,表储存为分散的节点(node)。每个节点包含有一个元素,以及一个指向下一个(或者上一个)元素的指针。如下图所示:表: 橙色储存数据,蓝色储存指针图中的表中有四个节点。第一个节点是头节点(head node),这个节点不用于储存元素,只用于标明表的起始。头节点可以让我们方便的插入或者删除表的第一个元素。整个表中包含有三个元素(5, 2, 15)。每个节点都有一个指 阅读全文
posted @ 2013-03-17 17:17 小薇林 阅读(189) 评论(0) 推荐(0) 编辑
摘要: .Net常见面试题整理(一)——值类型和引用类型 前段时间准备换个工作,所以参加了几场面试,面试的中主要考察的是C#相关知识的掌握以及实际项目中的经验。项目经验没办法整理,每个人都不一样,但是考察的基础知识我们可以归纳总结,对自己是个整体总结提高的过程。首先申明本人于2011年7月份毕业,目前工作约两年时间,面试的职位一般都是中级.Net工程师的职位。由于水平有限,文章中如果有错误或不到位的地方还请看到的大神指出,我一定改正。好了,回到正题。类型一直是C#中最基本的问题,关于值类型和引用类型,我想每个C#程序员都知道“值类型保存在栈上,引用类型保存在堆上”。但是仅仅知道到这里是完全不够的... 阅读全文
posted @ 2013-03-17 17:03 小薇林 阅读(189) 评论(0) 推荐(0) 编辑
摘要: 大数运算大数是指计算的数值非常大或者对运算的精度要求非常高,用已知的数据类型无法精确表示的值。计算大数的方法一般是用数组模拟大数的运算。之前写过,基本思想就是从低位到高位的按照加减乘除的运算规则来做,就是什么进位借位的注意点就好了。需要注意的细节问题如下: 1.数据的长短,短的那部分处理完之后,要处理多出来的那半段,还有遗留的进位。 2.做大数减法的时候需要搞清楚结果的正负号和运算时谁减去谁。 3.输出的时候不能输出高位的0, 如500-500不能得到000。 4.加法的进位只和前一位有关,但是减法的借位有时候会传递到很远,比如10000-9。 5.0就是0,不要输出什么+0 -0。... 阅读全文
posted @ 2013-03-17 15:20 小薇林 阅读(256) 评论(0) 推荐(0) 编辑
摘要: 笔试面试题目资料链接大收集!机会不容错过! 找实习还是找工作,都要做好准备,才不会白白错失机会。 虽说找工作要看机遇,但是不断把自己做到更好,也算是尽人事听天命了! 不然梦想中的机会来的时候,你却败在技术细节上,这不是坑爹吗!(教训啊!!!!血的教训啊!啊啊啊!) 此贴也是不断更新,不要光收集不看啊!我知道你是资料收集控!但是只有变成自己的东西才是真的啊!!! 数据结构和算法类不得不说的July博客: http://www.cnblogs.com/v-July-v/ 各大IT公司面试资料: http://www.cnblogs.com/aimeng/archive/2011/1... 阅读全文
posted @ 2013-03-17 15:17 小薇林 阅读(157) 评论(0) 推荐(0) 编辑
摘要: 线程概念 线程就是程序中单独顺序的流控制。 线程本身不能运行,它只能用于程序中。 说明:线程是程序内的顺序控制流,只能使用分配给程序的资源和环境。进程 进程:执行中的程序。 程序是静态的概念,进程是动态的概念。 一个进程可以包含一个或多个线程。 一个进程至少要包含一个线程。线程与进程的区别 多个进程的内部数据和状态都是完全独立的,而多线程是共享一块内存空间和一组系统资源,有可能互相影响。 线程本身的数据通常只有寄存器数据,以及一个程序执行时使用的堆栈,所以线程的切换负担比进程切换的负担要小。 多线程程序比多进程程序需要更少的管理费用。 进程是重量级的任务,需要分配给它们独... 阅读全文
posted @ 2013-03-17 15:16 小薇林 阅读(172) 评论(0) 推荐(0) 编辑
摘要: 基础知识——算法复杂度时间复杂度 时间复杂度(time complexity)又称时间复杂性或计算复杂度,它是算法有效性的度量之一。 时间复杂度是一个算法运行时间的相对量度,因为执行简单操作所需要的时间因机器的软硬件环境不同而不一样,所以只讨论影响运行时间的另一个因素——算法中进行简单操作次数的多少,所以通常把算法中包含简单操作次数的多少叫做该算法的时间复杂度。 若解决一个问题的规模为n,即所处理的数据中包含n个元素,则算法的时间复杂度通常是n的一个函数f(n)。 一般只要大致计算出相应的数量级(Order)即可,所以采用大O表示,比如当f(n)为n的多项式时,取最高次幂即可。 比如... 阅读全文
posted @ 2013-03-17 15:13 小薇林 阅读(313) 评论(0) 推荐(0) 编辑
摘要: 纸上谈兵01 排序算法简介及其C实现作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明。谢谢!排序算法(Sorting Algorithm)是计算机算法的一个组成部分。排序算法是将一个序列按照大小顺序重新排列。排序是古老但依然富有挑战的问题。Donald Knuth的经典之作《计算机程序设计艺术》(The Art of Computer Programming)的第三卷就专门用于讨论排序和查找。从无序到有序,从统计物理的角度看,就是减小了系统的熵值,增加了系统的有序度。有序这一特征是关于系统的非常有用的先验知识。因此,排序算法可以作为其 阅读全文
posted @ 2013-03-17 14:35 小薇林 阅读(231) 评论(1) 推荐(0) 编辑
摘要: Java基础01 从HelloWorld到面向对象作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明。谢谢!最近在看Java。Java是完全面向对象的语言。通过虚拟机的运行机制,它打造了“跨平台”的理念,吸引了许多程序员加入Java阵营。近年来,Android开发为Java的流行助力不少。这里类似于一份快速的总结清单。目标读者是有一些语言基础,并且想迅速了解Java的程序员。"Hello World!"我们先来看一个HelloWorld.java程序:public class HelloWorld{ public s 阅读全文
posted @ 2013-03-17 14:01 小薇林 阅读(223) 评论(0) 推荐(0) 编辑
摘要: 其实我们创建场景的时候,我们可以仿照官方的做法(其实最好就是用这种),代码就跟下面的差不多 我们在创建场景的时候,右键解决方案添加类-->c++ - 即可 先看HelloWorldScreen.cpp#include "HelloWorldScene.h"using namespace cocos2d;CCScene* HelloWorld::scene(){ CCScene * scene = NULL; do { // 'scene' is an autorelease object scene = CCScene::node(); ... 阅读全文
posted @ 2013-03-17 13:24 小薇林 阅读(305) 评论(0) 推荐(0) 编辑
该文被密码保护。 阅读全文
posted @ 2013-03-17 13:16 小薇林 阅读(0) 评论(0) 推荐(0) 编辑
摘要: A算法D算法 阅读全文
posted @ 2013-03-17 10:42 小薇林 阅读(122) 评论(0) 推荐(0) 编辑