1. 程式人生 > >1.3.1線性連結串列之靜態(結構體陣列)連結串列

1.3.1線性連結串列之靜態(結構體陣列)連結串列

結構表示 #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 博主備註:此種資料結構有待提高研究