1、链式存储,可以简称链表。
2、链表的一个结点(node)由两部分组成:数据域和指针域。
3、整个链表的存取必须从头指针开始,链表最后一个结点的指针为空,因此它是非随机存取的数据结构。
4、链表中插入结点:假设原结点为p,新结点为s,则:
s->next = p->next;
p->next = s;
不是很难理解吧……
5、基本操作还是比较简单的,下面假定采用无“空头”模式的如下链表:
#define INVALID 0xffff[......]
1、链式存储,可以简称链表。
2、链表的一个结点(node)由两部分组成:数据域和指针域。
3、整个链表的存取必须从头指针开始,链表最后一个结点的指针为空,因此它是非随机存取的数据结构。
4、链表中插入结点:假设原结点为p,新结点为s,则:
s->next = p->next;
p->next = s;
不是很难理解吧……
5、基本操作还是比较简单的,下面假定采用无“空头”模式的如下链表:
#define INVALID 0xffff[......]
发现自己学的最水的一门就是本科的数据结构了,我现在连冒泡排序都写不出来,sign。。。从今天开始重读数据结构。
冒泡排序:
对于有N个数的数组:
(1) 第1趟从第1个开始,如果arr[j] >= arr[j+1],swap(arr[j], arr[j+1])。本趟的结果是将最“大”的放在最后的位置上。
(2)第2趟仍然从第1个开始,执行大则swap但只执行到n-1的位置上,即次大的放到n-1上。
以此类推……
注:可优化,如果某一轮没有任何swap,说明已经有序了[......]
本章的内容是JNI(Java Native Interface),即从Java中访问本地方法(其他语言)。
1、当需要在Java中嵌入其他语言编写的代码,如C时,后者称为本地代码。
2、一般来说,Java虽然在单纯运算方面效率慢于C等,但这往往不是性能瓶颈。例如密码运算在某C/S中占用的时间为10%,网络、I/O速度占90%,用C比Java快两倍,则speedup只有1+0.1*2=1.2,只提升了20%(阿姆达尔定律)。
3、当然,如果项目是遗留的,之前已经有了大量,无法被迁[......]
1、Java已经逐渐支持在源代码中内嵌调用其他脚本语言,如Javascript / Groovy等。此外,也支持源代码注解,以上这些都是通过编译器API完成的。
2、要内嵌脚本,首先要获取脚本引擎:
// Make manager first
ScriptEngineManager manager = new ScriptEngineManager();
// name could be js/groovy/schema ...
ScriptEngine engine = mana[......]
1、本章关注Java分布式技术,特别是用于两个Java虚拟机之间的远程方法调用RMI。
2、我们想要这样一种机制:客户端的程序员以常规方式进行方法调用,而无需关心在数据在网络上传输或者解析响应的问题(解决方法是在客户端上安装一个代理类,由他处理技术细节)。
3、类似的,服务器端也需要有这样的功能,让传输和业务逻辑分离,于是有了如下的结构:
客户端 <-调用本地方法、返回-> 代理 <-->代理 <-调用本地方法,返回-> 服务器
4、代[......]