对一种数据结构的扩张过程可分为四步骤:
1)选择基础数据结构
2)确定要在基础数据结构中添加哪些信息
3)验证可用基础数据结构上的基本修改操作来维护这些新添加的信息
4)设计新的操作
动态顺序统计
动态顺序统计在红黑树的基础上添加x.size域,满足:x.size = x.left.size+x.right.size+1,扩张的结构如下:
操作:
1)检索具有给定秩的元...
分类:
编程语言 时间:
2015-07-17 10:08:50
收藏:
0 评论:
0 赞:
0 阅读:
317
区间树是一种对动态集合进行维护的红黑树,具体设计如下:
step1:基础数据结构
我们选择的基础数据结构式红黑树,其中每个节点增加...
分类:
编程语言 时间:
2015-07-17 10:05:59
收藏:
0 评论:
0 赞:
0 阅读:
285
题目描述:
对N个长度最长可达到1000的数进行排序。
输入:
输入第一行为一个整数N,(1
接下来的N行每行有一个数,数的长度范围为1
每个数都是一个正数,并且保证不包含前缀零。
输出:
可能有多组测试数据,对于每组数据,将给出的N个数从小到大进行排序,输出排序后的结果,每个数占一行。
样例输入:
3
1111111111111111111111111111...
分类:
编程语言 时间:
2015-07-17 10:05:39
收藏:
0 评论:
0 赞:
0 阅读:
219
服务端:
1, 创建socket服务器服务,服务器端为了让客户端可以连接上,必须提供端口,监听一个端口
2,获取客户端对象,通过客户端的socket流和对应的客户端进行通信
3,获取客户端的socket流的读取流
4,读取数据并显示在服务器端
5,关闭资源
package cn.net.tcp;
import java.io.IOExcep...
分类:
编程语言 时间:
2015-07-17 10:04:14
收藏:
0 评论:
0 赞:
0 阅读:
154
题目:
Given a list, rotate the list to the right by k places, where k is non-negative.
For example:
Given 1->2->3->4->5->NULL and k = 2,
return 4->5->1->2->3->NULL.
题意:
给定一个链表,以距离右边界...
分类:
编程语言 时间:
2015-07-17 10:02:49
收藏:
0 评论:
0 赞:
0 阅读:
280
我们来看看如果使用Knockout更简单的来实现密码强度的验证。
原有代码请查看:
DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
html xmlns="http://www.w3....
分类:
编程语言 时间:
2015-07-17 10:01:09
收藏:
0 评论:
0 赞:
0 阅读:
319
介绍
本篇主要是介绍创建对象方面的模式的下篇,利用各种技巧可以极大地避免了错误或者可以编写出非常精简的代码。
模式6:函数语法糖
函数语法糖是为一个对象快速添加方法(函数)的扩展,这个主要是利用prototype的特性,代码比较简单,我们先来看一下实现代码:
if (typeof Function.prototype.method !== "function") {
...
分类:
编程语言 时间:
2015-07-17 09:58:40
收藏:
0 评论:
0 赞:
0 阅读:
288
介绍
本篇主要是介绍创建对象方面的模式,利用各种技巧可以极大地避免了错误或者可以编写出非常精简的代码。
模式1:命名空间(namespace)
命名空间可以减少全局命名所需的数量,避免命名冲突或过度。一般我们在进行对象层级定义的时候,经常是这样的:
var app = app || {};
app.moduleA = app.moduleA || {};
app.modul...
分类:
编程语言 时间:
2015-07-17 09:58:29
收藏:
0 评论:
0 赞:
0 阅读:
239
介绍
桥接模式(Bridge)将抽象部分与它的实现部分分离,使它们都可以独立地变化。
正文
桥接模式最常用在事件监控上,先看一段代码:
addEvent(element, 'click', getBeerById);
function getBeerById(e) {
var id = this.id;
asyncRequest('GET', 'beer.uri?id=' ...
分类:
编程语言 时间:
2015-07-17 09:58:14
收藏:
0 评论:
0 赞:
0 阅读:
277
介绍
原型模式(prototype)是指用原型实例指向创建对象的种类,并且通过拷贝这些原型创建新的对象。
正文
对于原型模式,我们可以利用JavaScript特有的原型继承特性去创建对象的方式,也就是创建的一个对象作为另外一个对象的prototype属性值。原型对象本身就是有效地利用了每个构造器创建的对象,例如,如果一个构造函数的原型包含了一个name属性(见后面的例子),那通过...
分类:
编程语言 时间:
2015-07-17 09:57:29
收藏:
0 评论:
0 赞:
0 阅读:
243
介绍
本文介绍的四种代码复用模式都是最佳实践,推荐大家在编程的过程中使用。
模式1:原型继承
原型继承是让父对象作为子对象的原型,从而达到继承的目的:
function object(o) {
function F() {
}
F.prototype = o;
return new F();
}
// 要继承的父对象
var parent...
分类:
编程语言 时间:
2015-07-17 09:57:19
收藏:
0 评论:
0 赞:
0 阅读:
304
介绍
模板方法(TemplateMethod)定义了一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。
模板方法是一种代码复用的基本技术,在类库中尤为重要,因为他们提取了类库中的公共行为。模板方法导致一种反向的控制结构,这种结构就是传说中的“好莱坞法则”,即“别找找我们,我们找你”,这指的是父类调用一个类的操作,而...
分类:
编程语言 时间:
2015-07-17 09:57:17
收藏:
0 评论:
0 赞:
0 阅读:
225
JavaScript 数组是值的有序集合,所谓有序即数组的下标或索引从零开始递增,但也可能是稀疏的,数组长度可通过 length 属性获得。数组中元素的类型是任意的,创建数组时无需声明数组长度,它是动态的,会根据需要自动增长或缩减。数组继承自Array.prototype,它定义了一套丰富的数组操作方法,这个在后面会介绍到。1、创建数组使用数组直接量:var empty = [];
var prim...
分类:
编程语言 时间:
2015-07-17 09:56:17
收藏:
0 评论:
0 赞:
0 阅读:
321
介绍
适配器模式(Adapter)是将一个类(对象)的接口(方法或属性)转化成客户希望的另外一个接口(方法或属性),适配器模式使得原本由于接口不兼容而不能一起工作的那些类(对象)可以一些工作。速成包装器(wrapper)。
正文
我们来举一个例子,鸭子(Dock)有飞(fly)和嘎嘎叫(quack)的行为,而火鸡虽然也有飞(fly)的行为,但是其叫声是咯咯的(gobble)。如果...
分类:
编程语言 时间:
2015-07-17 09:55:19
收藏:
0 评论:
0 赞:
0 阅读:
194
介绍
职责链模式(Chain of responsibility)是使多个对象都有机会处理请求,从而避免请求的发送者和接受者之间的耦合关系。将这个对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理他为止。
也就是说,请求以后,从第一个对象开始,链中收到请求的对象要么亲自处理它,要么转发给链中的下一个候选者。提交请求的对象并不明确知道哪一个对象将会处理它——也就是该请求有一个隐式...
分类:
编程语言 时间:
2015-07-17 09:55:09
收藏:
0 评论:
0 赞:
0 阅读:
356
服务端:
package cn.net.tcp;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.Print...
分类:
编程语言 时间:
2015-07-17 09:54:59
收藏:
0 评论:
0 赞:
0 阅读:
273
介绍
享元模式(Flyweight),运行共享技术有效地支持大量细粒度的对象,避免大量拥有相同内容的小类的开销(如耗费内存),使大家共享一个类(元类)。
享元模式可以避免大量非常相似类的开销,在程序设计中,有时需要生产大量细粒度的类实例来表示数据,如果能发现这些实例除了几个参数以外,开销基本相同的 话,就可以大幅度较少需要实例化的类的数量。如果能把那些参数移动到类实例的外面,在方法调用...
分类:
编程语言 时间:
2015-07-17 09:54:49
收藏:
0 评论:
0 赞:
0 阅读:
307
介绍
中介者模式(Mediator),用一个中介对象来封装一系列的对象交互。中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。
主要内容来自:http://www.addyosmani.com/resources/essentialjsdesignpatterns/book/#mediatorpatternjavascript
正文
软...
分类:
编程语言 时间:
2015-07-17 09:54:39
收藏:
0 评论:
0 赞:
0 阅读:
268
c++11 多线程 – 基本使用
前言:这篇文章仅针对没有使用过c++11线程库的童鞋来快速入门,也是自己的一个简单记录,内容比较基础。
-1.线程的基本使用
-2.互斥量
-3.条件变量
-4.原子变量1.线程的基本使用代码:#include
#include
#include
#include
#incl...
分类:
编程语言 时间:
2015-07-17 09:49:29
收藏:
0 评论:
0 赞:
0 阅读:
362
摘要:你可以通过集成 Camel 和 WildFly 应用服务器(使用 WildFly-Camel 子系统)在 Java EE 组件中开始使用 Apache Camel Routes。【编者按】作者 Markus Eisele 是 Red Hat 的 Developer Advocate,主要从事 JBoss Middleware 相关研究,拥有超过14年的 Java EE 工作经验。本篇博文中,...
分类:
编程语言 时间:
2015-07-17 09:47:09
收藏:
0 评论:
0 赞:
0 阅读:
253