1 package datastructure;
2 //线性表
3
4 public interface IList {
5 public void clear();
6 public boolean isEmpty();
7 public int length();
8 public Object get(int i) throws Exception;
9 public void insert(int i,Object x) throws Exception;
10 public void remove(int i) throws Exception;
11 public int indexOf(Object x);
12 public void display();
13
14 }
1 package datastructure;
2 //顺序表
3
4 public class SqList implements IList {
5 private Object[] listElem;
6 private int curLen;
7 public SqList(int maxSize){
8 curLen =0;
9 listElem = new Object[maxSize];
10 }
11 public void clear() {
12 curLen=0;
13 }
14 public boolean isEmpty() {
15
16 return curLen==0;
17 }
18 public int length() {
19
20 return curLen;
21 }
22 public Object get(int i) throws Exception {
23 if(i<0||i>curLen-1)
24 throw new Exception("第"+i+"个元素不存在");
25
26 return listElem[i];
27 }
28
29 public void insert(int i, Object x) throws Exception {
30 if(curLen==listElem.length)
31 throw new Exception("顺序表已满");
32 if(i<0||i>curLen)
33 throw new Exception("插入位置不合法");
34 for(int j=curLen;j>i;j--)
35 listElem[j]=listElem[j-1];
36 listElem[i]=x;
37 curLen++;
38 }
39 public void remove(int i) throws Exception {
40 if(i<0||i>curLen-1)
41 throw new Exception("删除位置不合法");
42 for(int j=i;j<curLen-1;j++)
43 listElem[j]=listElem[j+1];
44 curLen--;
45
46 }
47 public int indexOf(Object x) {
48 int j=0;
49 while(j<curLen&&!listElem[j].equals(x))
50 j++;
51 if(j<curLen)
52 return j;
53 else
54 return -1;
55 }
56 public void display() {
57 for(int j=0;j<curLen;j++)
58 System.out.print(listElem[j]+" ");
59 System.out.println();
60 }
61
62 }