本章讲述了栈、队列、树、指针、对象的基本实现。boring AND difficult!!!(1) 栈概念定义:栈属于动态集合,采用先进后出策略(LIFO)。基本操作是压入(PUSH)和弹出(POP)。如果s.top=0,表示栈空,如果试图对空栈进行POP操作会发生下溢(underflow)。如果s...
分类:
其他好文 时间:
2015-02-23 13:06:06
阅读次数:
282
堆是一种完全二叉树,分为大根堆和小根堆,以大根堆为例:大根堆满足性质:对于堆中的任意一个节点,其值在以该节点为根的子树中最大。支持的操作:O(logn)的insert和O(logn)的pop.(1)insert操作:将插入元素放到完全二叉树的最后一个节点之后的一个节点,然后从该节点开始向上不断维护堆...
分类:
其他好文 时间:
2015-02-23 11:57:36
阅读次数:
137
1,队列的特点是先进先出,通常把队列比喻为排队买饭,先排队的人先买到饭,;
2,优先队列不同,它是根据队列元素的优先权,优先权大的先被取到;
3,一些操作函数:
enpty();如果队列为空,返回为真;
top();返回优先队列队顶元素;
pop();删除队顶元素;
push();添加元素到队列里面;
size();返回元素的个数
4,优先队列的定义:
头文件: #incl...
分类:
其他好文 时间:
2015-02-23 09:45:23
阅读次数:
152
Given a stack which can keep M numbers at most. Push N numbers in the order of 1, 2, 3, ..., N and pop randomly. You are supposed to tell if a given s...
分类:
其他好文 时间:
2015-02-23 09:35:10
阅读次数:
133
【题目】Design a stack that supports push, pop, top, and retrieving the minimum element in constant time.push(x) -- Push element x onto stack.pop() -- Rem...
分类:
其他好文 时间:
2015-02-19 17:29:31
阅读次数:
263
在js对象上绑定js数组原生方法在js对象上绑定数组方法会给当前对象添加一个lenght:0属性例: var o = {}; [].pop.call(o) console.log(o)//返回结果Object {length: 0}
分类:
编程语言 时间:
2015-02-13 13:16:37
阅读次数:
181
1.所 有的函数都有属于自己的一个arguments对象,它包括了函所要调用的参数。他不是一个数组,如果用typeof arguments,返回的是’object’。虽然我们可以用调用数据的方法来调用arguments。比如length,还有index方法。但是数 组的push和pop对象是不适用的...
分类:
编程语言 时间:
2015-02-13 13:09:18
阅读次数:
213
1 题目Design a stack that supports push, pop, top, and retrieving the minimum element in constant time.push(x) -- Push element x onto stack.pop() -- Rem...
分类:
其他好文 时间:
2015-02-12 22:35:46
阅读次数:
206
题目:
定义栈的数据结构,要求添加一个min函数,能够得到栈的最小元素。
要求函数min、push以及pop的时间复杂度都是O(1)。
代码:
#include
#include
#define MAX_LEN_STACK 10
typedef struct
{
int stackList[MAX_LEN_STACK];
int to...
分类:
其他好文 时间:
2015-02-12 18:33:26
阅读次数:
132
??
lists类型及操作
List是一个链表结构,主要功能室push,pop、获取一个范围的所有值等等,操作中key理解为链表的名字。Redis的list类型其实就是一个每个元素都是string类型的双向链表。我们可以通过push、pop操作从链表的头部或者尾部添加删除元素,这样list既可以作为栈,又可以作为队列。
lpush:在key对应list的头...
分类:
数据库 时间:
2015-02-12 16:14:27
阅读次数:
168