0001 /* 0002 * 列表ADT接口 0003 */ 0004 0005 package dsa; 0006 0007 public interface List { 0008 //查询列表当前的规模 0009 public int getSize(); 0010 0011 //判断列表是否为空 0012 public boolean isEmpty(); 0013 0014 //返回第一个元素(的位置) 0015 public Position first(); 0016 0017 //返回最后一个元素(的位置) 0018 public Position last(); 0019 0020 //返回紧接给定位置之后的元素(的位置) 0021 public Position getNext(Position p) 0022 throws ExceptionPositionInvalid, ExceptionBoundaryViolation; 0023 0024 //返回紧靠给定位置之前的元素(的位置) 0025 public Position getPrev(Position p) 0026 throws ExceptionPositionInvalid, ExceptionBoundaryViolation; 0027 0028 //将e作为第一个元素插入列表 0029 public Position insertFirst(Object e); 0030 0031 //将e作为最后一个元素插入列表 0032 public Position insertLast(Object e); 0033 0034 //将e插入至紧接给定位置之后的位置 0035 public Position insertAfter(Position p, Object e) 0036 throws ExceptionPositionInvalid; 0037 0038 //将e插入至紧靠给定位置之前的位置 0039 public Position insertBefore(Position p, Object e) 0040 throws ExceptionPositionInvalid; 0041 0042 //删除给定位置处的元素,并返回之 0043 public Object remove(Position p) 0044 throws ExceptionPositionInvalid; 0045 0046 //删除首元素,并返回之 0047 public Object removeFirst(); 0048 0049 //删除末元素,并返回之 0050 public Object removeLast(); 0051 0052 //将处于给定位置的元素替换为新元素,并返回被替换的元素 0053 public Object replace(Position p, Object e) 0054 throws ExceptionPositionInvalid; 0055 0056 //位置迭代器 0057 public Iterator positions(); 0058 0059 //元素迭代器 0060 public Iterator elements(); 0061 }