線性表(linear list)是n個具有相同特性的資料元素的有限序列。線性表是一種在實際中廣泛使用的資料結構,常見的線性表:順序表、鍊錶、堆疊、佇列、字串... 線性表在邏輯上是線性結構,也就說是連續的一條直線。但是在物理結構上並不一定是連續的,線性表在物理上儲存 時,通常以數組和鍊式結構的形式儲存。
順序表是用一段物理位址連續的儲存單元依序儲存資料元素的線性結構,一般情況下採用數組儲存。在陣列上完成資料的增刪查改
其實就是一個陣列。那為什麼還要寫一個順序表,直接用數組不就好了?不一樣的,寫到類別裡面就可以面向對象。
public class MyArrayList { public int[] elem;//数组 public int usedSize;//数据的有效个数 public MyArrayList(){ this.elem = new int[10]; } }
列印順序表
## 列印結果: 因為display是根據usedsize印製的, usedsize沒賦值所以什麼都不印。 取得順序表長度 在pos位置新增元素在順序表裡面插入元素的時候所插入的位置的前面一定是存放了元素的,畫圖分析: #程式碼如下:// 在 pos 位置新增元素 public void add(int pos, int data) { if(pos < 0 || pos > usedSize){ System.out.println("pos位置不合法"); return; } if(isFull()){ this.elem = Arrays.copyOf(this.elem,this.elem.length*2); } for (int i = this.usedSize-1; i >=pos ; i--) { this.elem[i+1] = this.elem[i]; } this.elem[pos] = data; this.usedSize++; } public boolean isFull(){ return this.usedSize == this.elem.length; }列印結果: 判定是否包含某個元素
// 判定是否包含某个元素 public boolean contains(int toFind) { for (int i = 0; i < this.usedSize; i++) { if (this.elem[i] == toFind) { return true; } } return false; }
// 查找某个元素对应的位置 public int search(int toFind) { for (int i = 0; i <this.usedSize ; i++) { if(this.elem[i] == toFind){ return i; } } return -1; }
// 获取 pos 位置的元素 public int getPos(int pos) { if(pos < 0 || pos > this.usedSize){ System.out.println("pos位置不合法"); return -1;//所以,这里说明一下,业务上的处理,这里不考虑 } if (isEmpty()){ System.out.println("顺序表为空"); return -1; } return this.elem[pos]; } public boolean isEmpty(){//判断为不为空的情况下 return this.usedSize == 0; }
為pos 位置的元素設為value
// 给 pos 位置的元素设为 value public void setPos(int pos, int value) { if (pos < 0 || pos > this.usedSize) { System.out.println("pos位置不合法"); return ; } if (isEmpty()) { System.out.println("顺序表为空"); return; } this.elem[pos] = value; } public boolean isEmpty() {//判断为不为空的情况下 return this.usedSize == 0; }
//删除第一次出现的关键字key public void remove(int toRemove) { if(isEmpty()){ System.out.println("顺序表为空"); return; } int index = search(toRemove);//查找要删除元素对应的位置 if(index == -1){ System.out.println("没有你要找到数字"); return; } for (int i = index; i <this.usedSize-1 ; i++) { this.elem[i] = this.elem[i+1]; } this.usedSize--; }
#
以上是Java資料結構的順序表怎麼操作的詳細內容。更多資訊請關注PHP中文網其他相關文章!