實現的操作包括:
向順序表末尾新增資料 ( 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表裡所有...