1. 程式人生 > >線性表的順序儲存結構(向量 )(一)

線性表的順序儲存結構(向量 )(一)

線性表的順序儲存(向量儲存):指的是用一組地址連續的儲存單元一次儲存線性表的資料元素。

由於線性表的所有資料元素均屬同一型別,所以每個元素在儲存器中佔用的空間大小相同。假設向量的第一個元素存放的地址用LOC(A1)表示,每個元素佔用的空間大小為L個位元組,則元素Ai的存放地址為:

LOC(Ai)=LOC(A1)+L X (i-1)

在高階語言環境中,通常利用陣列來表示線性表的順序儲存結構。,這是因為陣列中所有元素的資料型別是相同的,元素間的地址是連續的。

為更好體現資訊隱蔽原則及資料抽象原則,在這裡把陣列和線性表的長度封裝在一個結構體中。

//------------------------線性表的動態分配順序儲存------------------------------------------------------------------

#define LIST_INT_SIZE 100//線性表儲存空間的初始分配量
#define LIST_INT_SIZE 10//線性表儲存空間的分配增量
typedef struct{
ElemType * elem //儲存空間地址
int length //當前長度
int listsize //當前分配的儲存容量,以sizeof(ElemType)為單位
}Sqlist

說明:資料指標elem表示線性表的基地址,length表示線性表的當前長度,listsize表示順序表當前分配的儲存空間大小。一旦因出入元素而空間不足時,可以進行在分配。

向量中基本運算的實現。

1、初始化,長度為零,表中沒有資料元素。

SeqList InitList_Seq(){//構造一個空的線性表L
SeqList L;//定義一個順序表
L.length=0;//順序表的長度為0
return L;//返回空順序表
}//InitList_Seq