線性表的順序儲存結構(向量 )(一)
阿新 • • 發佈:2019-02-03
線性表的順序儲存(向量儲存):指的是用一組地址連續的儲存單元一次儲存線性表的資料元素。
由於線性表的所有資料元素均屬同一型別,所以每個元素在儲存器中佔用的空間大小相同。假設向量的第一個元素存放的地址用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