Fork me on GitHub

2012年3月14日

摘要: 二叉树是非线性结构,即每个数据结点至多只有一个前驱,但可以有多个后继。它可采用顺序存储结构和链式存储结构。1.顺序存储结构二叉树的顺序存储,就是用一组连续的存储单元存放二叉树中的结点。因此,必须把二叉树的所有结点安排成为一个恰当的序列,结点在这个序列中的相互位置能反映出结点之间的逻辑关系,用编号的方法从树根起,自上层至下层,每层自左至右地给所有结点编号,缺点是有可能对存储空间造成极大的浪费,在最坏的情况下,一个深度为k且只有k个结点的右单支树需要2k-1个结点存储空间。依据二叉树的性质,完全二叉树和满二叉树采用顺序存储比较合适,树中结点的序号可以唯一地反映出结点之间的逻辑关系,这样既能够最大可 阅读全文
posted @ 2012-03-14 19:22 pengyingh 阅读(38636) 评论(1) 推荐(3)
摘要: 动态规划,Dijkstra算法,A*算法的框架是相同的,不同点仅在于“推进点的选取”和“算法终止条件”。一,动态规划:(参见http://blog.csdn.net/iwantnon/archive/2009/07/07/4329269.aspx)推进点选取:(1),在粗犷的动态规划算法中:根本不进行选择,而是对所有已存在节点全部推进一遍。这可能造成如下两点浪费:[1],重复推进:对某点v已经作了推进,而下一次在其valu值没有发生更改的情况下又一次对它进行推进,显然这第二次推进得不到任何新东西,所以是白费的。[2],推进失效:对某点v作了推进以后,又对点u作推进,而u恰好将点v的valu值刷 阅读全文
posted @ 2012-03-14 19:03 pengyingh 阅读(2066) 评论(0) 推荐(1)
摘要: 6、教你从头到尾彻底理解KMP算法作者:July、saturnma 时间;二零一一年一月一日-----------------------本文参考:数据结构(c语言版) 李云清等编著、算法导论作者声明:个人July 对此24个经典算法系列,享有版权,转载请注明出处。引言:在文本编辑中,我们经常要在一段文本中某个特定的位置找出 某个特定的字符或模式。由此,便产生了字符串的匹配问题。本文由简单的字符串匹配算法开始,再到KMP算法,由浅入深,教你从头到尾彻底理解KMP算法。来看算法导论一书上关于此字符串问题的定义:假设文本是一个长度为n的数组T[1...n],模式是一个长度为m<=n的数组P[ 阅读全文
posted @ 2012-03-14 19:00 pengyingh 阅读(368) 评论(0) 推荐(0)
摘要: 红黑树算法的层层剖析与逐步实现----作者July二零一零年十二月三十一日本文主要参考:算法导论第二版本文主要代码:参考算法导论。本文图片来源:个人手工画成、算法导论原书。推荐阅读:Leo J. Guibas 和 Robert Sedgewick 于1978年写的关于红黑树的一篇论文。--------------------------------------------------------------红黑树系列,四篇文章于今日已经完成。[二零一一年一月九日]教你透彻了解红黑树:http://blog.csdn.net/v_JULY_v/archive/2010/12/29/610563. 阅读全文
posted @ 2012-03-14 18:55 pengyingh 阅读(414) 评论(0) 推荐(0)
摘要: 4、教你通透彻底理解:BFS和DFS优先搜索算法作者:July二零一一年一月一日---------------------------------本人参考:算法导论本人声明:个人原创,转载请注明出处。ok,开始。翻遍网上,关于此类BFS和DFS算法的文章,很多。但,都说不出个所以然来。读完此文,我想,你对图的广度优先搜索和深度优先搜索定会有个通通透透,彻彻底底的认识。---------------------咱们由BFS开始:首先,看下算法导论一书关于 此BFS 广度优先搜索算法的概述。算法导论第二版,中译本,第324页。广度优先搜索(BFS)在Prime最小生成树算法,和Dijkstra单源 阅读全文
posted @ 2012-03-14 18:43 pengyingh 阅读(18441) 评论(0) 推荐(0)
摘要: 作者July二零一零年十二月三十一日本文参考:微软面试100题系列V0.1版第19、56题、算法导论、维基百科。ok,咱们先来了解下什么是动态规划算法。动态规划一般也只能应用于有最优子结构的问题。最优子结构的意思是局部最优解能决定全局最优解(对有些问题这个要求并不能完全满足,故有时需要引入一定的近似)。简单地说,问题能够分解成子问题来解决。动态规划算法分以下4个步骤:1.描述最优解的结构2.递归定义最优解的值3.按自底向上的方式计算最优解的值 //此3步构成动态规划解的基础。4.由计算出的结果构造一个最优解。 //此步如果只要求计算最优解的值时,可省略。好,接下来,咱们讨论适合采用动态规划方法 阅读全文
posted @ 2012-03-14 18:38 pengyingh 阅读(6752) 评论(0) 推荐(0)
摘要: 经典算法研究系列:二、Dijkstra算法初探July 二零一一年一月======================本文主要参考:算法导论 第二版、维基百科。写的不好之处,还望见谅。本经典算法研究系列文章,永久勘误,永久更新、永久维护。 July、二零一一年二月十日更新。------------------------------------一、A*搜索算法三、dynamic programming二、Dijkstra 算法五(续)、教你透彻了解红黑树五、红黑树算法的实现与剖析六、教你从头到尾彻底理解KMP算法四、BFS和DFS优先搜索算法---------------------------- 阅读全文
posted @ 2012-03-14 18:31 pengyingh 阅读(8186) 评论(0) 推荐(1)
摘要: 作者:July、二零一一年一月----------------------------------博主说明:1、本经典算法研究系列,此系列文章写的不够好之处,还望见谅。2、本经典算法研究系列,系我参考资料,一篇一篇原创所作,转载必须注明作者本人July及出处。3、本经典算法研究系列,精益求精,不断优化,永久更新,永久勘误。欢迎,各位,与我一同学习探讨,交流研究。有误之处,不吝指正。-------------------------------------------引言 1968年,的一篇论文,“P. E. Hart, N. J. Nilsson, and B. Raphael. A form 阅读全文
posted @ 2012-03-14 18:27 pengyingh 阅读(868) 评论(0) 推荐(0)
摘要: 原文链接地址:http://www.raywenderlich.com/3664/opengl-es-2-0-for-iphone-tutorial 免责申明(必读!):本博客提供的所有教程的翻译原稿均来自于互联网,仅供学习交流之用,切勿进行商业传播。同时,转载时不要移除本申明。如产生任何纠纷,均与本博客所有人、发表该翻译稿之人无任何关系。谢谢合作! ps:非常感谢skingTree为我们提供的这篇翻译教程,感谢yy、小狼、北方加入我的教程翻译团队,谢谢你们!教程截图:OpenGL ES 是可以在iphone上实现2D和3D图形编程的低级API。 如果你之前接触过 cocos2d,s... 阅读全文
posted @ 2012-03-14 18:19 pengyingh 阅读(355) 评论(0) 推荐(0)
摘要: 看到很刚开始开发iPhone软件的朋友问很多问题,其实同样的问题我也碰到过, 所以抽时间把能想到的或者碰到的问题汇总一下, 一来可以给自己做个备忘也可以和朋友们分享探讨。1. iPhone SDK 开发能不能使用C / C++ 语言?Answer:iPhone SDK的开发的基础框架是基于cocoa库的,Objective-C 是cocoa的开发语言, 但基于Objective-C的特性,在iPhone程序中可以使用C/C++进行功能开发以及使用第三方C/C++库。2. 如何才能使用 C /C++?Answer: 当你需要使用C/C++时, 可以将类实现的文件名改为.mm, 这样编译器就知道改 阅读全文
posted @ 2012-03-14 16:35 pengyingh 阅读(444) 评论(0) 推荐(0)
摘要: 最近几天一直在啃cocos2d,消化了不少东西,基本可以有些把握下手写公司的游戏了;那么今天就把一些重点的拿出来分享下经验,给新童鞋们作为参考;这篇就来详细介绍下cocos2d对用户触屏的监听事件进行下分析(cocos2d有很多详细的文章和教程,我这里只是出于自己的理解来说)进入正题:从整体cocos2d对触屏的事件监听可以分为两种:1.单一监听,所谓单一监听其实是跟cocos2d引擎框架有关,因为在cocos2d中每个游戏界面都可以使用一个CCLayout完成,那么当一个CCLayout在屏幕显示出来后,想要监听用户的按键事件,一般都会使用以下形式来进行监听:(注意:这里是CCLayout类 阅读全文
posted @ 2012-03-14 16:32 pengyingh 阅读(204) 评论(0) 推荐(0)
摘要: 1. 添加到map view的子视图不会随地图的移动而移动,map view会固定其子视图的位置。如果要添加随着地图移动的子视图,可以使用annotations和overlays。annotation用来显示由一个经纬度定义的位置,而overlay则是由多个点所定义或者包含了许多连续的图形。2.在地图上显示annotation,需要提供两个对象annotation object)annotation view.)注释对象通常是一些小的数据对象,保存了地图的坐标和一些相关信息。Map Kit提供了一些标准的注释视图,你也可以使用自定义的注释视图。但是不能将注释视图直接添加到map view,而是 阅读全文
posted @ 2012-03-14 16:22 pengyingh 阅读(449) 评论(0) 推荐(0)
摘要: 原文地址:http://ofps.oreilly.com/titles/9780596804824/chmath.html 译文地址:http://blog.csdn.net/favormm/article/details/6920318***************************************************************************第二章:数学与抽象 计算机图形领域比计算机其它领域对数学的要求都高,如果你想成为一个合格的OpenGL程序员,那么你得撑握线性代数,并能抽象一些内容。 在本章,我将解释这些抽象内容与回忆线性代数的内容。其中Ope 阅读全文
posted @ 2012-03-14 16:20 pengyingh 阅读(507) 评论(0) 推荐(0)
摘要: 用xCode编译OpenGL的模板应用程序 当第一次打开Xcode的时候,它会弹出一个欢迎对话框。选择上面的Create a new Xcode project按钮。(如果你的对话框被关闭了没有显示出来,那么可以选择菜单里的File->New Project来创建新工程。)现在你会有一个如图1.2的对话框出现,它包括Xcode提供的工程模版。我们要用到的是OpenGL ES Application这个模版,注意到没,它是在iPhoneOS这一栏下面。这个模版并没有什么特别的,只不过它支持OpenGL,作为一个新手,选择它是明智的。图1.2 选择模版后,会有一个对话框要求你输入工程名字。完 阅读全文
posted @ 2012-03-14 16:07 pengyingh 阅读(1990) 评论(0) 推荐(0)
摘要: 核心动画 CoreAnimation第一章 核心动画概念核心动画,开发人员可以为他们的应用创建动态用户界面,而无需使用低级别的图形 API,如 OpenGL 来获取高效的动画性能。前言,核心动画的好处1.简单易用的高性能混合编程模型。2.类似视图一样,你可以通过使用图层来创建复杂的接口。 通过是CALayer来使用更复杂的一些动画。 3.轻量级的数据结构,它可以同时显示并让上百个图层产生动画效果。 控制多个CALayer来显示动画效果 4.一套简单的动画接口,可以让你的动画运行在独立的线程里面,并可以独立于主线程之外。5.一旦动画配置完成并启动,核心动画完全控制并独立完成相应的动画帧。6... 阅读全文
posted @ 2012-03-14 15:39 pengyingh 阅读(27361) 评论(0) 推荐(1)
摘要: 首先需要引入AudioTool 这个framework- (id)initWithPath:(NSString *)path{ UInt32 size, maxPacketSize; char *cookie; int i; if (gThereIsAnActiveTrack) { NSLog(@"*** WARNING *** GBMusicTrack only plays one track at a time! You must close the previously running ... 阅读全文
posted @ 2012-03-14 15:23 pengyingh 阅读(440) 评论(0) 推荐(0)
摘要: 原文链接地址:http://www.iphonegametutorials.com/2010/09/14/cocos2d-sprite-tutorial-part-3/ 我们在第2部分教程中已经介绍了如何让dragon沿着8个不同的方向移动,并且播放相应的动画,同时,移动过程可以由用户touch屏幕来控制。cocos2d很酷吧!好了,今天我们将多干点活,我们将创建一大批村民--实际上是N个村民。我们会使用我们已经学习过的技术,从spritesheet里面加载精灵,同时建立相应的精灵动画。 这里有本教程的完整源代码。 那么,我们到底要做成什么样子呢---看了下面的图就明白了:上面加载了好多... 阅读全文
posted @ 2012-03-14 15:04 pengyingh 阅读(353) 评论(0) 推荐(0)
摘要: 原文链接地址:http://www.iphonegametutorials.com/2010/09/10/cocos2d-sprite-tutorial-part-2/ 上一篇教程中,我们留下了我们孤独的dragon在屏幕中间。。。然而,90%的动画并没有应用到,那可是我们花了很大力气才建立好的呀!太遗憾了!所以,我们这篇教程要弥补这个缺憾。我们将添加touch控制,以此来捕获用户的输入,并根据用户手指的方向来选择一个合适的动画给dragon播放。你就可以用手在屏幕上滑动来指挥dragon移动了。 这里有本教程的完整源代码。 对于cocos2d来说,如果你想要使用touch控制的话,... 阅读全文
posted @ 2012-03-14 14:59 pengyingh 阅读(268) 评论(0) 推荐(0)
摘要: 原文链接地址:http://www.iphonegametutorials.com/2010/09/10/cocos2d-sprite-tutorial/教程截图: 前言:CocoaChina上有位网友问我能不能翻译一些比较高级的文章。首先,非常感谢这位网友的建议。之前翻译的3篇菜单教程,相比于前面TinyWings来说,确实显得有点小儿科了。但是,需要说明的是,那三篇菜单教程是后面教程的基础。在iphonegametutorials这个网站上,作者会引用到前面的文章。所以今天,我还是会翻译三篇“小儿科”的文章。不过希望大家还是耐着性子看一遍,权当温故知新。如果大家觉得哪些主题比较感兴趣,麻. 阅读全文
posted @ 2012-03-14 14:55 pengyingh 阅读(574) 评论(0) 推荐(0)
摘要: 原文链接地址:http://www.iphonegametutorials.com/2010/09/07/cocos2d-menu-tutorial-part-3/ 现在,我们已经在菜单上面做了大量文章了。可能你会问,我们还能干嘛?耐心点,我的朋友!今天我们将接触menu item的图片。很期待吧?呵呵 老实说,如果你没有图片资源,你啥事也做不好。你真的需要一些教程来教你如果为菜单定制图片,这也是这篇教程的来由。 这里有本教程的完整源代码。 好了,我们这次要完成哪些内容呢---下面是今天的日程表:为所有已经存在的Layer添加一个BaseLayer作为背景。给“Start Game”和... 阅读全文
posted @ 2012-03-14 14:48 pengyingh 阅读(307) 评论(0) 推荐(0)

导航