靜態鍊錶,是通過游標來記錄下乙個節點的位置,約定第乙個游標指向備用列表的頭,最後乙個游標指向靜態鍊錶的頭,比如:
;//函式宣告
status static_list_init
(static_list space)
;status search_bp_positon
(static_list space)
;status static_list_insert
(static_list space,
int p,elemtype e)
;status print_static_link_list
(static_list space)
;int
static_list_length
(static_list space)
;status delete_element
(static_list space,
int p,elemtype *e)
;#endif
#include
#include
"static_link_list.h"
intmain()
/*func:initializes the static link list.
para:space:struct array
return:
success:ok
fail:error
*/status static_list_init
(static_list space)
space[maxsize-1]
.cur =0;
//最後乙個游標指向0
return ok;
}/*func: find a backup location.
para:space:struct array
return:
success:return backup location
fail:error
*/status search_bp_positon
(static_list space)
/*func: get the length of the static list.
para:space:struct array
return:
success:returns the length of a static list.
fail:error
*/int
static_list_length
(static_list space)
}else
return count;
}/*func: insert the element before the i-th node.
para:space:struct array
p:insert positon
e:insert data
return:
success:ok
fail:error
*/status static_list_insert
(static_list space,
int p,elemtype e)
bp =
search_bp_positon
(space)
; space[bp]
.data = e;
for(i =
1; i <= p-
1;i++
) space[bp]
.cur = space[k]
.cur;
space[k]
.cur = bp;
return ok;
}/*func: print the element from static link list.
para:space:struct array
return:
success:ok
fail:error
*/status print_static_link_list
(static_list space)
printf
("\n");
}else
return ok;
}/*func: delete the element from static link list.
para:space:struct array
p :delete position
e :returns the element to be deleted.
return:
success:ok
fail:error
*/status delete_element
(static_list space,
int p,elemtype *e)
//找到刪除結點的前乙個結點
for(i =
1; i <= p-
1;i++
)//更改備用列表
i = space[k]
.cur;
space[k]
.cur = space[0]
.cur;
space[0]
.cur = k;
//更改游標
*e = space[i]
.data;
space[k]
.cur = space[i]
.cur;
return ok;
}
線性表 靜態鍊錶
靜態鍊錶的優缺點 優點 1 在插入和刪除操作時,只需要改變游標cur,不需要移動元素,從而改進了在順序儲存結構中的插入和刪除中需要移動大量元素的缺點 缺點 1 沒有解決連續儲存分配帶來的表長難以確定的問題 2 失去了順序儲存結構隨機訪問的特性 includeusing namespace std d...
線性表(3) 靜態鍊錶
靜態鍊錶 1.利用連續的靜態儲存空間模擬實現鍊錶的操作 2.建立資料鏈表,利用游標作為指標,指向下一元素儲存位置,l max 1 cur為頭指標,指向第乙個資料元素 3.建立空閒結點鍊錶,利用游標作為指標,指向下一空閒結點位置,l 0 cur為頭指標,指向第乙個空閒結點所在位置 4.l 0 data...
線性表 3靜態鍊錶
通過上面的學習我們知道,靜態鍊錶儲存資料元素也需要自定義資料型別,至少需要包含以下 2 部分資訊 include define maxsize 7 typedef struct component 將結構體陣列中所有分量鏈結到備用鍊錶中 void reservearr component array...