線性表是n(n>=0)個具備相同特性的數據元素的有限序列。java
線性表是最簡單、最經常使用的一種數據結構
數組
線性表屬於線性結構的一種數據結構
若是一個數據元素序列知足:spa
(1)除第一個和最後一個數據元素外,每一個數據元素只有一個前驅數據元素和一個後繼數據元素;code
(2)第一個數據元素沒有前驅數據元素;blog
(3)最後一個數據元素沒有後繼數據元素接口
則能夠稱這樣的數據結構爲線性結構rem
線性表的存儲結構主要有兩種,順序存儲結構和鏈式存儲結構get
用順序存儲結構的存放的線性表稱做爲順序表,用鏈式存儲結構存放的線性表稱爲線性鏈表class
按照這個說法,以前所提到的java中的int數組等一維數組都是能夠稱爲順序表。
使用鏈式存儲結構,則會有前趨和後繼的說法
下列的圖能夠說明一點(圖就這樣子了,別吐槽了。。)
A1做爲開頭,因此沒有前趨,A1的後繼是A2
A2的前趨是A1,後繼則是A3
A3是末尾,因此沒有後繼,A3的前趨是A2
基本運算都在圖中了,這裏就很少寫了,因爲咱們是使用java語言描述的,因此咱們可將運算寫成一個接口(抽象類),以後再由類去實現此接口,複寫這些方法,可能這樣說你們都不是很理解,沒有關係,在下一節就會使用到此接口了
public interface ListIntf { public int size(); //返回表的長度 public void clear(); //重置表爲空表 public boolean isEmpty(); //判斷表是否爲空 public String get(int i); //取得表中第i個元素的值 public int indexOf(String s);//得到表中與數據元素s相等的第一個元素的位置(位序) public String getPre(String s);//得到數據元素s的前趨 public String getNext(String s);//得到數據元素s的後繼 public void insertElementAt(String s,int i);//在第i個位置以前插入新的數據元素s,表長度加1 public String remove(int i);//刪除第i個數據元素,並返回其值,表長度減1 public String remove(String s); //刪除數據元素s,並返回其值,表長度減1 }