- 博客(28)
- 收藏
- 关注
原创 Cocos2d-x 源码分析 : Scheduler(定时器) 源码分析
1.Scheduler与Timer的关系相当DataManager与Data的关系。2.Scheduler的两种定时模式,一种是customer selector模式,一种是update 模式。 3.hash表用来存取对应的timer。 4.Scheduler的update函数调用了所有Timer的update。
2014-06-18 17:14:28 2468
原创 cocos2d-x 源码分析 总目录
这篇博客用来整理与cocos2d-x相关的工作,只要有新的分析、扩展或者修改,都会更改此文章。祝大家愉快~1.源码分析1.CCScrollView源码分析 http://blog.csdn.net/u011225840/article/details/30033501 2.CCTableView源码分析http://blog
2014-06-17 11:01:36 3149
原创 cocos2d-x 源码分析 : control 源码分析 ( 控制类组件 controlButton)
control的设计整体感觉挺美的,在父类control定义了整个控制事件的基础以及管理,虽然其继承了Layer,但其本身和UI组件的实现并没有关联。在子类(controlButton,controlSwitch,controlStepper等中实现不同的UI组件)
2014-07-01 10:23:03 1774
原创 cocos2d-x 源码分析 : EventDispatcher、EventListener、Event 源码分析 (新触摸机制,新的NotificationCenter机制)
很多需要注意的地方我全给了中文标识,但是这里我还要再次说明下新版本的touch OneByOne机制: 1.listener根据Node的优先级排序后,依次响应。值得注意的是,新版本的优先级是根据Node的global Zorder来的,而不是2.x的触摸优先级。 2.当TouchEvent Began来了之后,所有的listener会依次影响Touch Began。然后再依次响应Touch Move...而不是一个listener响应完 began move end之后 轮到下
2014-06-25 19:55:42 4295
原创 cocos2d-x 源码分析 : Ref (CCObject) 源码分析 cocos2d-x内存管理策略
1.Ref,AutorealsePool,PoolManager是紧密相关的 2.Ref的retain、new 应该与 release或者autoRealse成对出现。 3.Node的使用方式。
2014-06-21 14:12:42 2441
原创 cocos2d-x 源码分析 之 CCTableView源码分析(附使用方法讨论)
1. CCTableView三基友: CCTableViewCell,负责单个cell,含有唯一idx用于区别。 CCTableViewDataSource,负责数据源相关,包括数据个数,数据根据不同idx的获取,数据size等。 CCTableViewDelegate,负责delegate操作。
2014-06-17 10:51:30 5418
原创 cocos2d-x 源码 :可以循环的CCScrollView (代码已经重构过,附使用方法)
1.准备工作想弄懂可循环的CCscrollView,首先请阅读cocos2d-x本身的CCscrollView源码http://blog.csdn.net/u011225840/article/details/30033501(我已经添加注释,方便阅读)。2.源码展示因为源码我想放到git上,所以注释都是用的英文,如果这部分源码有人有问题,请在评论区留言,我会逐一回答。总体说下
2014-06-16 11:22:56 2707 3
原创 cocos2d-x CCScrollView 源码分析
CCScrollView本质是CCLayer的一种,具备层的一切属性和方法。关于CCLayer的源码分析,后续会有。小结:1.CCScrollView支持两种操作,滚动和缩放。2.CCScrollView通过delegate将数据与界面解耦。3.CCScrollView本质是一个CClayer,他展示的是自己内部的container,并且CCScrollView的触摸以及展示是根据ViewSize 还不是本身的SIze决定的。
2014-06-12 14:36:47 3685 1
原创 字符串中第一次出现的只出现一次的字符
题目:给一个字符串"abadfawefwfasf",找出第一个只出现一次的字符。分析:自从看过计数排序之后,发现很多题目都是针对计数排序的扩展。字符只有256个,好处,就是我们能有一个固定的空间大小的一个数组来统计每个字符出现的次数,只需要n的时间,然后再从头到尾遍历一遍即可。代码:void findFirstOne(char *str){ if (
2014-03-17 21:13:21 649
原创 单向链表的查找问题
题目:输入一个单向链表。如果该链表的结点数为奇数,输出中间的结点;如果链表结点数为偶数,输出中间两个结点前面的一个。思考:最简单的解法:从头到尾遍历一遍数组,得到链表大小n。然后再从头走n/2次,则一共需要的时间为1.5n。优化:想起以前一道题目,用n的方法反转一个单向链表。如果只用一个变量header,是不可能的,用了preHeader,proHeader,nowHead
2014-03-05 19:50:13 904
原创 hw9.20 分离适配式 malloc free 实现 思想猜测
首先,先了解下书中所介绍的采用隐式空闲链表的简单适配器实现贴出来供大家参考,在Ubandu下编译成功。#include #include #define WSIZE 4#define DSIZE 8#define CHUNKSIZE (1<<12)#define MAX(x,y) ((x)>(y)?(x):(y))#define PACK(size,alloc) (
2013-11-27 20:54:08 2011
原创 hw 9.18
已分配块之需要头部,不需要脚部,带来的改变是合并时候,无法轻易的判断prevBlock 是否是一个空闲块,需要从heap_listp开始往后开始寻找到 当前块bp的上一个,判断其头部(因为你无法知道上一个到底是空闲的还是已分配的),来决定是否合并它。代码思想如下:static void* newCoaleace(void *bp){ //对于下一个块的合并与原来一样,不再赘述。只
2013-11-27 20:22:52 884
原创 hw 9.17
区别就是在全局变量中保存一个char* last_bp;在每次malloc后,动态记录last_bp的值,然后写下如下代码static void* find_nextFit(size_t asize){ char* bp = NEXTBLCK(last_listp); while(GETSIZE(HDRP(bp))!=0){ if(GETSIZE(bp
2013-11-27 20:11:53 654
原创 hw 9.16
显示空闲链表要求在空闲块中存放两个指针,一个pred指针,一个succ指针,再加上头部和脚部,最少需要16字节。最小块大小16161616疑惑,在网上查的显示空闲链表的解释下所理解的答案,如果不对,烦请指正!
2013-11-26 21:16:29 818
原创 hw 9.14
#include #include #include #include #include int main(int argc,char** argv){ int fd = open("hello.txt",O_RDWR,0); char * fistChar = (char*)mmap(NULL,1,PROT_WRITE,MAP_SHARED,fd,0); *fistChar
2013-11-26 19:47:19 690
原创 判断正数序列是不是二叉查找树的后序遍历结果
题目:输入一个正数数组,判断该数组是不是某二叉查找树的后序遍历结果。如果是,返回true,如果不是返回false思路:1.分治法:分解:找到一个pivot,判断p到pivot结点以及pivot到q-1结点的两个子序列是否满足条件。合并:当两个子序列满足条件后,判断第一个子序列的结点是否都小于根结点,第二个子序列的结点是否等大于根结点。2.如何找到该pivot。
2013-11-26 19:05:44 621
原创 找出数组中最小的k个元素
题目:输入n个整数,输出整数中最小的k个元素。思路:1.朴素算法,利用random快排,在nlgn时间内得到排序好的数组,然后输出前k个。时间复杂度有点高啊~2.对想法1进行优化,是否可以先对k个数进行排序,时间复杂度klgk,然后对一个排好序的数组进行二分插入需要lgk的时间,做n-k次,则可以完成,时间复杂度为nlgk代码如下: int piviot
2013-11-26 17:34:14 1228
原创 hw 9.12
虚拟地址格式0 0011 1010 1001地址翻译VPN 0xEtlb索引 0x2tlb标记 0x3否否0X11物理地址格式100 0110 1001物理地址引用0x10xa0x11否------
2013-11-26 15:39:15 604
原创 hw 9.11
虚拟地址格式0 0010 0111 1011地址翻译VPN 0x9tlb索引 0x1tlb标记 0x2否否0x17物理地址格式101 1111 1011物理地址引用0x30xE0x17否-----
2013-11-26 15:29:25 742
原创 二叉树中找出和为某一值的所有路径
题目:输入一个整数和一颗二叉树。从树结点到叶结点经过的结点定义为一条路径。找出路径上所有结点和为该整数的路径并打印出来。定义二叉树结点为下:struct BinaryTreeNode{int value;BinaryTreeNode* left;BinaryTreeNode* right;};思路:1.典型递归。2.设当前结点是p,用整数
2013-11-26 11:58:32 772
原创 求子数组的最大和
题目:输入一个integer数组,数组中连续的一个或者多个整数组成一个子数组,每个子数组都有一个和。求所有子数组的最大和,要求时间复杂度为O(n)思路:1.时间复杂度是O(n) 是什么概念,要求仅遍历常数次数组。2.假设计算到数组的第k个数,那么前k-1个数的和可能有如下情况:2.1 k-1的数的和是负数或者0,那么就抛弃,因为一个负数加一个数只会更小。2.2 k-
2013-11-25 21:40:02 723
原创 设计包含min函数的栈
题目:定义栈的数据结构,要求添加一个min函数,能够得到栈的最小元素,并且要求时间复杂度是O(1)。思路:1.如何找到一个栈中最小的元素,要遍历一遍(pop)确定最小元素后再push进去,但这个时间复杂度肯定不对。所以就要想增加空间复杂度来减少时间复杂度。2.如果我用一个元素来记录最小元素,貌似可行,但是想到如果记录最小元素被pop出去后,怎么才能将最小元素指向第二小元
2013-11-25 21:18:52 740
原创 二元查找树转变成排序的双向链表
描述:输入一颗二元查找树,将二元查找树转换成一个排序的双向链表。要求不能创建人新创建的结点,只调整指针的指向。我的思路:利用递归思想进行解答。1.分解,将结点P分解成左子树和右自树两个部分。2.解决子问题,左子树变成一个双向链表,右子树变成一个双向链表。3.合并,将结点P的left 连接到左子树中最大的结点,将结点p的rignt连接到右子树中最小的结点。最后,将
2013-11-25 21:10:02 705
转载 深入理解计算机系统家庭作业答案
不知为何 原作者从第七章开始不再更新家庭作业的答案,只好自己开始写答案~悲催~~该系列答案chapter2~chapter6可以参考http://blog.csdn.net/yang_f_k/article/list/1,博主名称yang_f_k
2013-11-25 20:58:02 3886
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人