順序表 SeqList Java實現

2021-09-10 09:32:18 字數 4315 閱讀 2846

實現的操作包括:

向順序表末尾新增資料 ( adddata( data));

向順序表指定位置新增資料( insertdatabyloc( location));

刪除順序表中指定的資料( deletedatabydata( data));

刪除順序表中指定位置的資料( deletedatabyloc( location));

查詢指定位置的資料( finddatabyloc( location));

查詢指定資料的位置( findlocationofdata( data))。

輔助實現的操作包括:

判斷順序表是否為空( isempty());

判斷順序表是否滿( isfull())。

下面是實現的**(seqlist)

/**

* 該順序表實現僅針對不存在相同元素的集合

* 若集合中存在相同元素,則:

* 方法 deletedatabydata(type):刪除第乙個滿足要求的資料。

*/public class seqlist

/*** 根據指定陣列構造順序表(未調通)

* @param datalist:指定的陣列

*/public seqlist(type datalist)

/*** 構造指定大小的順序表

* @param size:指定的大小

*/public seqlist(int size)

/*** 獲取順序表的大小

* @return size:順序表大小

*/public int getsize()

/*** 清空順序表

*/public void clear()

/*** 向順序表末尾新增節點 data

* @param data:新新增的節點

* @return -1:順序表滿,新增失敗

* 0:新增成功

*/public int adddata(type data)

datalist[size++] = data;

//順序表未滿,則將新資料新增到順序表末尾。

// 同時順序表大小遞增 1

return 0;

}/**

* 向指定位置插入節點 data

* @param data:新插入的資料

* @param loc:插入的位置

* @return -1:位置超出範圍或順序表滿,插入錯誤

* 0:插入成功

*/public int insertdatabyloc(type data, int loc)else if ((loc >= maxsize)) else if (loc < 0) else if (loc >= size)else if (size == 0) else

datalist[loc] = data;//將新資料插入到指定位置

this.size += 1;//將順序表大小遞增 1

return 0;}}

/*** 刪除指定元素,並返回刪除元素的位置

* @param data:需要刪除的資料

* @return i:刪除資料的位置

* -1:沒有找到指定的元素

*/public int deletedatabydata(type data)

}return -1;

}/**

* 刪除指定位置的資料

* @param loc:資料的位置

* @return 刪除掉的資料值

*/public type deletedatabyloc(int loc)

this.size --;//將順序表大小遞減 1

return data;

}/**

* 查詢指定位置的資料

* @param loc:資料的位置

* @return 指定位置的資料值

*/public type finddatabyloc(int loc)

/*** 查詢指定資料的位置

* @param data:需要查詢的資料

* @return loc:資料的位置

*/public int findlocationofdata(type data)

}return -1;

}/**

* 判斷順序表是否為空

* @return 順序表是否為空

*/public boolean isempty()

return true;

}/**

* 列印順序表資料

*/public void display()

}}

下面是該**的測試**(seqlisttest)

public class seqlisttest 

/*** 執行程式

*/public void run()

seqlistseqdatalist = new seqlist<>();

if (seqdatalist.isempty())//測試 isempty() 方法

system.out.println("順序表為空。");

for (int i = 0; i < size; i++)

// 測試 finddatabyloc() 方法

display(seqdatalist);

//測試 insertdatabyloc() 方法

system.out.println("在位置 -3 處新增資料:10");

seqdatalist.insertdatabyloc(10,-3);

system.out.println("在位置 3 處新增資料:10");

seqdatalist.insertdatabyloc(10,3);

system.out.println("在位置 23 處新增資料:10");

seqdatalist.insertdatabyloc(10,23);

system.out.println("在位置 103 處新增資料:10");

seqdatalist.insertdatabyloc(10,103);

display(seqdatalist);

//測試 deletedatabydata() 方法

system.out.println("刪除資料:3");

seqdatalist.deletedatabydata(3);

system.out.println("刪除資料:5");

seqdatalist.deletedatabydata(5);

display(seqdatalist);

//測試 deletedatabyloc() 方法

system.out.println("刪除位置:-6 的資料");

seqdatalist.deletedatabyloc(-6);

system.out.println("刪除位置:6 的資料");

seqdatalist.deletedatabyloc(6);

system.out.println("刪除位置:26 的資料");

seqdatalist.deletedatabyloc(26);

display(seqdatalist);

//測試 findlocationofdata() 方法

system.out.println("刪除元素:15");

seqdatalist.deletedatabydata(15);

system.out.println("刪除元素:105");

seqdatalist.deletedatabydata(105);

display(seqdatalist);

//測試 findlocationofdata() 方法

system.out.println("查詢元素:10 的位置:" + seqdatalist.findlocationofdata(10));

system.out.println("查詢元素:-1 的位置:" + seqdatalist.findlocationofdata(-1));

//測試 clear() 方法

seqdatalist.clear();

display(seqdatalist);

}private void display(seqlist seqdatalist)

system.out.println("\n順序表大小為:" + seqdatalist.getsize());

system.out.println();

}}

因為很久沒寫**,所以寫得比較亂,還望諒解~/bq

順序表 順序表定位

這兩個題本質一模一樣,唯一不同的是本題利用 順序表 將陣列a包裝了起來。在遍歷的過程中,拿順序表的資料去和x比對,若相同,返回當前下標值,若到了最後乙個資料元素都不相同,就返回 1 1.遍歷順序表 2.挨個比對資料元素 prism lang c include const int max 20 設定...

順序表專題 1 順序表

順序表的實現 元素儲存區操作 需求 將一組 通常是同一型別 的幾個資料元素作為乙個整體管理和使用,需要建立這種元素的組,並用變數對他們進行記錄。這樣一組資料的元素個數可能發生變化 因為增刪改查等操作 對於這種需求,最簡單的解決方式是將這組元素視為乙個序列,可以將這個結構抽象為線性表。乙個線性表是某類...

順序表應用5 有序順序表歸併 順序表做法)

順序表應用5 有序順序表歸併 time limit 100 ms memory limit 880 kib submit statistic problem description 已知順序表a與b是兩個有序的順序表,其中存放的資料元素皆為普通整型,將a與b表歸併為c表,要求c表包含了a b表裡所有...