public class DoubleLinkedList {
public Node head;
public DoubleLinkedList() {
head = new Node();
head.next = null;
head.prior = null;
}
//尾插法
public void createByTail(int[] arr, int n) {...
分类:
其他好文 时间:
2015-06-10 12:27:42
阅读次数:
132
题目:给定单向链表的头指针和一个节点指针,定义一个函数在O(1)时间删除该节点,链表节点与函数的定义如下:struct ListNode{int m_nValue;ListNode* m_pValue;};void DeleteNode(ListNode** pListNode,ListNode *...
分类:
其他好文 时间:
2015-06-09 23:11:44
阅读次数:
143
理论基础:栈(Stack)是操作限定在表的尾端进行的线性表。表尾由于要进行插入、删除等操作,所以,它具有特殊的含义,把表尾称为栈顶(Top),另一端是固定的,叫栈底(Bottom)。当栈中没有数据元素时叫空栈(EmptyStack)。栈可以分为顺序栈和链栈。用一片连续的存储空间来存储..
分类:
编程语言 时间:
2015-06-09 14:00:21
阅读次数:
151
先看一下UIListView添加、插入、删除的机制,再来考虑如何互换两项的位置。
UIListView.h
/* 所有项用一个数组来保存 */
CCArray* _items;
void ListView::pushBackCustomItem(Widget* item)
{
/* 向数组中添加一项 */
_items->addObject(item);
remedy...
分类:
其他好文 时间:
2015-06-07 18:56:01
阅读次数:
337
set是STL中一种标准关联容器(vector,list,string,deque都是序列容器,而set,multiset,map,multimap是标准关联容器),它底层使用平衡的搜索树——红黑树实现,插入删除操作时仅仅需要指针操作节点即可完成,不涉及到内存移动和拷贝,所以效率比较高。set,顾名...
分类:
其他好文 时间:
2015-06-07 11:04:35
阅读次数:
107
问题简述: 输入两个序列x和y,分别执行下列三个步骤,将序列x转化为y (1)插入;(2)删除;(3)替换; 要求输出最小操作数。 原题链接:http://poj.org/problem?id=3356解题思路: 明显的动态规划题,输入两个字符串 a[0...m-1] , b[0...n]...
分类:
其他好文 时间:
2015-06-04 00:49:31
阅读次数:
195
一、简介 跳表(skiplist)是一个非常优秀的数据结构,实现简单,插入、删除、查找的复杂度均为O(logN)。LevelDB的核心数据结构是用跳表实现的,redis的sorted set数据结构也是有跳表实现的。代码在这里:http://flyingsnail.blog.51cto.com/53...
分类:
编程语言 时间:
2015-06-02 21:29:28
阅读次数:
190
分析过Immutable Collections后,进入具体的数据结构来分析,这一次我们来看看ImmutableList。作为线性可重复集合,ImmutableList的底层实现采用了数组,因为不可变集合,就不存插入删除的操作。数组的下标使得根据index的read的操作,时间复杂度变为了O(1)。...
分类:
其他好文 时间:
2015-06-02 19:55:41
阅读次数:
134