概念:指的是用一段位址連續的儲存單元依次儲存線性表的資料元素;用一維陣列來實現順序儲存結構;
重要屬性:儲存空間的起始位置、線性表的最大儲存量、線性表的當前長度;
優點:無須為表示表中元素之間的邏輯關係而增加額外的儲存空間;可以快速的檢視任意位置的元素。
缺點:插入和刪除操作需要移動大量元素;當線性表長度變化比較大時,難以確定儲存空間的容量;造成儲存空間的「碎片」;
/*
* 1. 順序結構(陣列)實現單鏈表
*/public
class myarraylist
private
static final int default_size = 10;// 陣列的預設長度
private
int size;// 記錄元素的個數
private
int capacity;// 記錄陣列的長度
private object elementdata;// 儲存元素的陣列
// 以預設陣列長度建立空順序線性表
public
myarraylist()
// 以乙個初始化元素來建立順序表
public
myarraylist(t element)
// 以初始化元素和初始大小建立順序線性表
public
myarraylist(int initsize, t element)
elementdata = new object[capacity];
elementdata[0] = element;
size++;
}// 獲取線性表元素的個數
public
intlength()
// 獲取順序線性表中索引為i出的元素
public t getvalue(int i)
return (t) elementdata[i];
}// 查詢順序線性表中製指定元素的索引
public
intlocate(t element)
return -1;
}// 向線性表的指定位置插入乙個元素
public
void
insert(t element, int index)
ensurecapacity(size + 1);
// 將index處以後的所有元素向後移動一格
system.arraycopy(elementdata, index, elementdata, index + 1, size
- index);
elementdata[index] = element;
size++;
}public
void
add(t element)
// 擴充底層陣列長度
private
void
ensurecapacity(int mincapacity)
elementdata = arrays.copyof(elementdata, capacity);}}
// 刪除順序線性表中指定索引出的元素
public t delete(int index)
t oldvalue = (t) elementdata[index];
int nummoved = size - index - 1;
if (nummoved > 0)
elementdata[--size] = null;// 清空最後乙個元素
return oldvalue;
}// 刪除最後乙個元素
public t remove()
// 判斷線性表是否為空表
public boolean empty()
// 清空線性表
public
void
clear()
// 重寫tostring方法
public string tostring() else
int len = sb.length();}}
}
資料結構 線性表 順序儲存結構
1.線性表定義 線性表 list 零個或多個資料元素的有限序列。關鍵知識點 1.首先它是乙個序列,元素之間室友順序的 2.線性表強調的是有限的,元素個數是有限的 3.在較複雜的線性表中,乙個資料元素可以由若干個資料項組成。其數學定義 若將線性表標記為 a1,ai 1 ai ai 1 a n 則表中的...
資料結構 線性表順序儲存結構
線性表是一種典型的線性結構。其基本特點是線性表中的資料元素是有序且是有限的。在這種結構中 存在乙個唯一的被稱為 第乙個 的資料元素 存在乙個唯一的被稱為 最後乙個 的資料元素 除第乙個元素外,每個元素均有唯一乙個直接前驅 除最後乙個元素外,每個元素均有唯一乙個直接後繼。線性表 linear list...
《資料結構 線性表》順序儲存
一 什麼是線性表?線性表定義 0個 或 多個 資料元素 有限 序列。序列 這個必須是有順序的,若元素存在多個,則第乙個元素無前驅,最後乙個元素無後驅。乙個元素只能有乙個前驅 後驅。有限 線性表必須是有限的,無限的只存在於數學中。線性表元素個數必須是 大於 0,當 n 0 時,稱為空表。二 線性表抽象...