JAVA實現 線性表

2021-07-31 03:29:58 字數 1861 閱讀 4508

如果乙個資料元素序列滿足:

除第乙個和最後乙個資料元素外,每個資料元素都只有乙個前驅資料元素和乙個後繼資料元素;

第乙個資料元素沒有前驅資料元素;

最後乙個資料元素沒有後繼資料元素;

則稱這樣的資料結構為線性結構。線性表、堆疊、佇列、串和陣列都屬於線性結構。

線性表是一種可以在任意位置進行插入和刪除資料元素操作的、由n(n>=0)個相同型別資料元素a0,a1,a2,a3…..an-1組成的線性結構。

順序表的主要特點是:

首先設計乙個線性表介面list,線性表介面list給出了任何實現線性表功能的類中必須要實現的成員函式原型,這有兩方面的作用:一方面,設計基礎軟體模組(如順序錶類和單鏈錶類等)的設計者,可以根據介面list規範的成員函式(包括成員函式的訪問許可權,成員函式名,成員函式的返回型別,每個引數的引數型別)來實現成員函式,這樣,凡是實現介面list的類,無論是順序錶類還是單鏈錶類,只是實現操作的具體方法不同,所實現的功能和呼叫的形式都相同;另一方面,使用基礎軟體模組(如順序錶類和單鏈錶類等)的使用者在定義了物件後,可以根據介面list規範的成員函式原型來呼叫成員函式。因此可以說,線性表介面list定義了實現該介面類的外部公共介面。

public

inte***ce

list

實現順序儲存結構的方法是使用陣列。陣列將順序表的資料元素儲存在一塊連續位址的記憶體單元中。線性表的儲存結構示意圖如下圖所示,其中a0,a1,a2,a3等表示順序表中儲存的資料元素,listarray表示儲存資料元素的陣列,maxsize表示陣列的最大允許資料元素個數,size表示陣列的當前資料元素個數。

順序錶類的設計如下:

public

class

seqlist

implements

list

public

seqlist(int size)

private

void

initiate(int sz)

public

void

insert(int i,object obj)throws exception

if(i<0||i>size)

for(int j=size;j>i;j--)

listarray[i]=obj; //在listarray[i]處插入object型別的例項obj(有可能是數字,字元,或者其他物件,因此用object型別)

size++; //陣列長度加一

}public object delete(int i)throws exception

if(i<0||i>size-1)

object it = listarray[i]; //定義it儲存將要被刪除的資料元素

for(int j=i;j1;j++)

size--; //size--的語義包括刪除listarray[size-1],即線性表的最後乙個元素

return it;

}public object getdata(int i)throws exception

return listarray[i];

}public

intsize()

public

boolean

isempty()

public

intmoredatadelete(seqlist l,object x)throws exception

}return tag;}}

線性表實現(JAVA)

package nodelist public class liststructs 判斷線性表是否為空 return 0為空,1為非空 public int listempty return 0 把陣列中的資料清空 return 0為清空 public int clearlist return 0 ...

線性表的Java實現

線性表是一種可以在任意位置插入和刪除元素,由n個同型別元素組成的線性結構。主要包括順序表,單鏈表,迴圈單鏈表,雙向鍊錶和 鍊錶。應用比較廣泛的是順序表和單鏈表。下面是線性表的介面,主要操作包括插入元素,刪除元素,取得元素,得到線性表元素個數,判斷線性表是否為空。package com.nishizh...

ArrayList線性表Java實現

自定義list介面 classname list description 列表的介面 author xiaomu date 2018年1月14日 下午4 25 05 param public inte ce listarraylist classname arraylist description ...