獲得元素操作
對于線性表的順序存儲結構來說,我們要實現getElement操作,即將線性表的第i個位置元素返回即可
插入操作
插入算法思路:
1、如果插入位置不合理,拋出異常
2、如果插入表的長度大于等于數組長度,則拋出異常或動態增容
3、從最后一位元素開始向前遍歷到第i個位置,分別把它們都向后移動一個位置
4、將要插入元素填入位置i處
5、表長度加1
刪除操作
1、如果刪除位置不合理,拋出異常
2、取出插入元素
3、從刪除元素位置開始遍歷到最后一個元素位置,分別將它們都向前移動一位
4、表長度減一
public interfaceList {public Object getElement(int index) throwsException;public void doInsert(Object obj,int index) throwsException;public void doDelete(int index) throwsException;
}
public class SequenceList implementsList{static final int DEFUALTLENTH=10;int maxSize;//最大數組長度
int size;//當前長度
Object[] list;//對象數組//順序表初始化方法
public void init(intsize1){
maxSize= size1;//這個表的長度為size1
list = newObject[size1];
}//無參構造方法
publicSequenceList() {
init(DEFUALTLENTH);
}//有參構造方法
public SequenceList(intsize2){
init(size2);
}
@Overridepublic Object getElement(int index) throwsException {if(size==0 || index<0 || index>=size){
System.out.println("參數不正確");
}if(size ==maxSize){
System.out.println("");
}returnlist[index];
}
@Overridepublic void doInsert(Object obj,int index) throwsException {if(index<0 || index>size+1){
System.out.println("參數錯誤");
}if(size ==maxSize){
System.out.println("線性表已滿,無法插入");
}for(int i=size-1;i>index-1;i--){
list[i+1]=list[i];//指定位置之后的元素都后移一位
}
list[index]=obj;
size++;
}
@Overridepublic void doDelete(int index) throwsException {if(index<0||index>=size){
System.out.println("參數錯誤");
}if(indexindex;i--){
list[i-1] =list[i];
}
}
size--;
}
}
public classListTest {public static voidmain(String args[]){
SequenceList seq= new SequenceList(20);try{
seq.doInsert("aa", 1);
seq.doInsert("bb", 2);
seq.doInsert("cc", 3);for(int j=0;j
System.out.println(seq.getElement(j));}
}catch(Exception e) {//TODO Auto-generated catch block
e.printStackTrace();
}
}
}
public class StudentList {
public static void main(String args[]){
SequenceList seqList = new SequenceList(30);
try {
seqList.doInsert(new Student(1,"小米","女",23), seqList.size);//每次插入,都在表的最后一位插入
seqList.doInsert(new Student(2, "小徐", "男", 22), seqList.size);
for(int i=0;i
System.out.println("第"+(i+1)+"學生信息為:"+seqList.getElement(i).toString());
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
class Student{
private int id;
private String name;
private String gender;
private int age;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public String toString() {
return "student [id=" + id + ", name=" + name + ", gender=" + gender
+ ", age=" + age + "]";
}
public Student(int sid,String name,String gender,int age){
this.id = sid;
this.name = name;
this.gender = gender;
this.age = age;
}
}