1.3.1線性連結串列之靜態(結構體陣列)連結串列
阿新 • • 發佈:2019-01-03
結構表示
#define MAXSIZE 1000 //連結串列的最大長度
typedef struct {
ElemType data;
int cur; //該結點所在位序
}component , SLinkList[MAXSIZE];
//在靜態連結串列中查詢第 1 個值為e的元素,
//若找到則返回它在L中的位序,否則返回0;
int LocateElem_SL( SLinkList S, ElemType e ){
i = S[ 0 ].cur; //i 指向表中的第一個結點
while ( i && S[i].data !=e )i = S[ i ] . cur;
return i;
}//LocateElem_SL
//將一維陣列space中的各分量鏈成一個備用連結串列,space[ 0 ].cur為頭指標
//' 0 '表示空指標
void InitSpace_SL( SLinkList &space ) {
for ( i = 0; i<MAXSIZE - 1; i++ )space [ i ].cur = i +1;
space[MAXSIZE - 1].cur = 0 ;
}InitSpace_SL
//備用連結串列非空則返回分配的結點的下標否則返回0
int Malloc_SL( SLinkList &space ) {
i = space[ 0 ].cur;
if ( space[ 0 ].cur) space[ 0 ].cur = space[ i ].cur;
return i;
}
//將下標為 k 的空閒結點收回備用連結串列
void Free_SL (SLinkList &space , int k) {
space[ k ].cur = space[ 0 ].cur ;space[ 0 ].cur = k;
}//Free_SL
博主備註:此種資料結構有待提高研究