Java基于双向链表实现列表结构(算法源码)
/* 高手之作,本人谨以收藏者身份共享源码,供大家参考之! */
/*
* 列表ADT接口
*/
package dsa;
public interface List {
//查询列表当前的规模
public int getSize();
//判断列表是否为空
public boolean isEmpty();
//返回第一个元素(的位置)
public Position first();
//返回最后一个元素(的位置)
public Position last();
//返回紧接给定位置之后的元素(的位置)
public Position getNext(Position p)
throws ExceptionPositionInvalid, ExceptionBoundaryViolation;
//返回紧靠给定位置之前的元素(的位置)
public Position getPrev(Position p)
throws ExceptionPositionInvalid, ExceptionBoundaryViolation;
//将e作为第一个元素插入列表
public Position insertFirst(Object e);
//将e作为最后一个元素插入列表
public Position insertLast(Object e);
//将e插入至紧接给定位置之后的位置
public Position insertAfter(Position p, Object e)
throws ExceptionPositionInvalid;
//将e插入至紧靠给定位置之前的位置
public Position insertBefore(Position p, Object e)
throws ExceptionPositionInvalid;
//删除给定位置处的元素,并返回之
public Object remove(Position p)
throws ExceptionPositionInvalid;
//删除首元素,并返回之
public Object removeFirst();
//删除末元素,并返回之
public Object removeLast();
//将处于给定位置的元素替换为新元素,并返回被替换的元素
public Object replace(Position p, Object e)
throws ExceptionPositionInvalid;
//位置迭代器
public Iterator positions();
//元素迭代器
public Iterator elements();
}
/*
* 基于双向链表实现列表结构
*/
package dsa;
public class List_DLNode implements List {
protected int numElem;//列表的实际规模
protected DLNode header, trailer;//哨兵:首节点+末节点
//构造函数
public List_DLNode() {
numElem = 0;//空表
header = new DLNode(null, null, null);//头节点
trailer = new DLNode(null, header, null);//尾节点
header.setNext(trai
相关文档:
http://www.java-cn.com/technology/tech/4759.html
偶尔在网上发现的一片关于掌握JAVA的标准,感觉有点意思,虽然在一些观点上有些偏颇,但作为学习JAVA的引导尚可。至于原创是谁没有必要考证。
时常看到一些人说掌握了Java,但是让他们用Java做一个实际的项目可能又困难重重,在这里,笔者根据 ......
我今天学习了Oracle数据库如何修改表的知识,是冯威老师讲的课,我做了简单的记录:
1.在表中插入新的列:
alter table tablename
add city varchar(2) default 'rr' //赋默认值
2.修改表中的列:
alter table tablename
modify city varchar(20)
3.删除表中的列:
alter t ......
及时消除不使用的对象的引用, 理论上, 带有内存管理的语言是不存在内存泄漏的, 但是如果对对象的操作不当,也是可能会造成内存泄漏. 如有一个stack, 其pop函数如下. public Object pop() { if( Element.length() == 0) return nu ......
二分查找法和线性查找法
二分查找法是一种比普通线性查找快得多的查找算法,但只适用于有序集合当中。拿升序排序后的整型数组来说,二分法具体的实现原理是:先把待查找数a与数组中间的那个数x对比,如果相等,直接返回x的索引;如果a大于x,则排除掉数组的前面一半(包括x),接着拿a与剩下一半数组中间的那个数x对比,如 ......
信息来源:邪恶八进制信息安全团队(www.eviloctal.com)
Author:kj021320
转载请注名出处。
Java应用程序环境的安全策略,详细说明了对于不同的代码所拥有的不同资源的许可,它由一个Policy对象来表达。
为了让applet(或者运行在SecurityManager下的一个应用程序)能够执行受保护的行为,例如读写文件,applet(或Jav ......