1.看源码必须搞懂Android的数据结构。在init源代码中双向链表listnode使用很多,它只有prev和next两个指针,没有任何数据成员。这个和linux内核的list_head如出一辙,由此可见安卓深受linux内核的影响的。本来来分析一下这个listnode数据结构。
这里需要考虑的一个问题是,链表操作都是通过listnode进行的,但是那不过是个连接件,如果我们手上有个宿主结构,...
分类:
移动开发 时间:
2014-07-14 18:13:24
阅读次数:
435
Atitit.java c++指针使用总结O7
1. 指针的本质 1
2. 指针的作用 1
1. 提升性能问题这常常用于遍历数组, 1
2. 计算两个指针的的距离 2
3. 避免栈溢出,创建动态数据结构,,大的对象/数组必须使用指针或者静态的变量 2
4. 灵活性 2
3. 一个变量包括a.地址(指针) b。命名(引用,别名) c.变量内容..
3
4. 指针跟引用...
分类:
编程语言 时间:
2014-07-12 22:12:22
阅读次数:
353
就是两个指针表示区间[l,r]的开始与结束然后根据题目来将端点移动,是一种十分有效的做法。适合连续区间的问题3320这道意思是一本书有n页,每一页上有一个知识点标号a[i]可能重复,要求选择一个最小的区间使得能够覆盖所有知识点分析:[l,r]区间推进,统计区间中能够覆盖的知识点数,对于每一个l,r都...
分类:
其他好文 时间:
2014-07-07 22:09:14
阅读次数:
213
原文:http://1527zhaobin.iteye.com/blog/1537110一.判断链表是否存在环型链表问题: 说明:判断一个链表是否存在环,例如下面这个链表就存在环,n1-->n2-->n3-->n4-->n5-->n2,环的开始结点是n5 解法:这里有个比较简单的解法:设两个指针p1...
分类:
编程语言 时间:
2014-07-03 20:53:32
阅读次数:
411
归并排序:
归并操作,也叫归并算法,指的是将两个已经排序的序列合并成一个序列的操作。归并排序算法依赖归并操作。
归并操作的过程如下:
(1) 申请空间,使其大小为两个已经排序序列之和,该空间用来存放合并后的序列
(2) 设定两个指针,最初位置分别为两个已经排序序列的起始位置
(3) 比较两个指针所指向的元素,选择相对小的元素放入到合并空间,并移动指针到下一位置
(4) 重复步骤3直到某一指针到达序列尾
(5) 将另一序列剩下的所有元素直接复制(抄)到合并序列尾...
分类:
编程语言 时间:
2014-06-30 18:48:23
阅读次数:
203
【题目】
Given a linked list, return the node where the cycle begins. If there is no cycle, return null.
Follow up:
Can you solve it without using extra space?
【题意】
给定一个单向链表,如果链表有环,则返回环开始的位置。
【思路】
仍然是维护两个指针, p1, p2, p1每次走一步, p2每次走两步
...
分类:
其他好文 时间:
2014-06-29 23:59:21
阅读次数:
354
【题目】
Given a linked list, determine if it has a cycle in it.
Follow up:
Can you solve it without using extra space?
【题意】
判断一个单向链表是否有环
【思路】
维护两个指针p1和p2,p1每次向前移动一步,p2每次向前移动两步
如果p2能够追上p1,则说明链表中存在环...
分类:
其他好文 时间:
2014-06-29 22:51:33
阅读次数:
267
问题
归并排序是一种常用的排序方法,本文讲述了其基本思想以及用python实现的方法。
在python中,有一个非常强大的模块heapq,提供了merge方法,让归并排序在python中更简单了。
思路说明
归并操作过程:
1. 申请空间,使其大小为两个已经排序序列之和,该空间用来存放合并后的序列
2. 设定两个指针,最初位置分别为两个已经排序序列的起始位置
3. 比较两...
分类:
编程语言 时间:
2014-06-24 21:07:01
阅读次数:
269
栈帧由下面几个元素组成:
返回地址:函数完成后要返回的程序内部地址
局部数据存储:为局部变量分配的内存
参数存储:为函数参数分配的内存
栈指针和基指针:运行时系统用来管理栈的指针
栈指针通常指向栈顶部。基指针通常存在并指向栈帧内部的地址,比如返回地址,用来协调访问栈帧内部的元素。这两个指针都不是C指针,他们是运行时系统管理程序栈的地址。...
分类:
编程语言 时间:
2014-06-22 16:42:42
阅读次数:
235
归并排序
归并排序是建立在归并操作上的一种有效的排序算法。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。
算法步骤:
1. 申请空间,使其大小为两个已经排序序列之和,该空间用来存放合并后的序列
2. 设定两个指针,最初位置分别为两个已经排序序列的起始位置
3. 比较两个指针所指向的元素,选择相对小的元素放入到合并空间,并移动指针到...
分类:
其他好文 时间:
2014-06-22 14:22:14
阅读次数:
187