int locateelem_sl(slinklist s,elemtype e)//locateelem_sl
//在靜態鍊錶中實現插入和刪除的演算法,其指標修改的操作和前面描述的單鏈表中的插入與刪除的演算法類似,所不同的是,需由使用者自己實現malloc和free這兩個函式。為了辨明陣列中哪些分量未被使用,解決的辦法是將所有未被使用過以及被刪除的分量用游標鏈成乙個備用的鍊錶,每當進行插入時便可從備用鍊錶上取得第乙個結點作為待插入的新結點,反之,在刪除時,將從鍊錶中刪除下來的結點鏈結到備用鍊錶上。
//現用靜態鍊錶實現實現集合運算(a-b)並上(b-a)
//假設由終端輸入集合元素,先建立表示集合a的靜態鍊錶s,而後在輸入集合b的元素的同時查詢s表,若存在,和b相同的元素,則從s表中刪除之,否則將此元素插入s表。
1. 將整個陣列空間初始化成乙個鍊錶;
2. 從備用空間取得乙個結點;
3. 將空閒結點鏈結到備用鍊錶上;
. void initspace_sl(slinklist &space)//initspace_sl
int malloc_sl(slinklist &space)//malloc_sl
void free_sl(slinklist &space,int k)//free_sl
void difference(slinklist &space,int &s)//for
space[r].cur=0; //尾結點的指標為空
for(j=1;j<=n;++j)//while
if(k==space[r].cur)//if
else//else
}//for
}//dofference
靜態鍊錶(陣列 鍊錶和靜態鍊錶的操作)
因為是線性表,不能只講鍊錶,所以今天提一下靜態鍊錶以及陣列 鍊錶 靜態鍊錶之間的對比。陣列基本結構沒得說,插入和刪除的操作也是有的 雖然看著不比較詭異 一般是動態分配乙個足夠長的,記錄有多少個元素後對這個個數進行加減,而不是每插入乙個就動態分配 其實這樣也行,要是不怕麻煩的話 另外在插入刪除操作之後...
鍊錶學習 靜態鍊錶
struct linknode 鍊錶在指定位置插入與刪除元素不需要移動元素,只需要修改指標即可,而陣列刪除與加入元素則需要移動後面的元素,鍊錶相對於陣列來講,則多了指標域空間開銷,拿到鍊錶第乙個節點就相當於拿到整個鍊錶 鍊錶的分類 靜態鍊錶,動態鍊錶 單向鍊錶,雙向鍊錶,迴圈鍊錶,單向迴圈鍊錶,雙向...
靜態鍊錶的應用
include include typedef struct list typedef struct link void init link l int assign link l void freenode link l,int pos void insert link l,int i,int e...