(1)定義:順序表是一種線性的數據結構,保存在其中的元素先後相鄰,保存數據時須要佔據 一塊連續的內存。數組
(2)API:bash
int size(); //獲取順序表元素個數
boolean isEmpty(); //判空
boolean contains(E e); //判斷是否包含指定元素
int indexOf(E e); //找到指定元素的索引
void add(int index,E e); //在指定位置添加元素
void addFirst(E e); //在順序表頭部添加元素
void addLast(E e); //在順序表尾部添加元素
E remove(int index); //刪除指定位置元素
boolean remove(E e); //刪除指定的元素
E get(int index); //查找指定位置的元素
void set(int index,E e); //修改指定位置的元素複製代碼
(3)實現:數據結構
首先,實現size()和isEmpty()方法。很容易想到咱們能夠額外使用一分內存來記錄當前已添加元素的個數,這樣對於實現size()和isEmpty()方法都是很簡單的了。函數
除此以外,咱們還須要考慮添加元素時,elements數組已滿的狀況,我這裏選擇對其進行擴容,下面就是擴容函數,其基本思路是另外建立一個數組,新建立的數組的長度爲原來elements數組的兩倍,將原elements數組中元素複製到新建立的數組中,再另elements保存對新建立的數組的引用便可。實現以下:ui
下面是三個在順序表中添加元素的方法spa
判斷順序表中是否包含指定元素,遍歷順序表便可,時間複雜度爲O(n)。3d
找到指定元素的索引,indexOf(E e)方法code
刪除指定位置的元素cdn
刪除指定的元素blog
最後的get和set方法