#include #include #define max 100
typedef int elemtype;
/*定義每個節點的資料資訊*/
typedef struct node
slnode;
/*靜態鍊錶的定義*/
typedef struct static_list
sqlist;
int main()
/*提示鍊錶的狀態。為空或者滿或者非空非滿*/
if(0==judge_list_empty(sl))
else
/*呼叫資料查詢函式,位址不合法則重新輸入*/
if(-1==research_list(sl))
/*呼叫刪除元素函式,位址不合法則重新輸入*/
if(-1==delete_list(&sl))
/*顯示靜態鍊錶的內容*/
show_list(sl);
return 0;
} int init_static_list(sqlist *l)
(*l).store[max-1].next=-1;//(1)中的-1表示的是資料元素空間的結尾,而在這裡指的是空閒空間的結尾
printf("the static list initialed success!!!\n");
return 0;
} /*建立靜態鍊錶(這裡運用的是尾插法)*/
int creat_static_list(sqlist *l)
return 0;
} /*求長函式的定義*/
int length_list(sqlist l)
return count;//將鍊錶的長度返回
} /*判空函式定義*/
int judge_list_empty(sqlist l)
/*判滿函式定義*/
int judge_list_full(sqlist l)
/*靜態鍊錶顯示函式*/
void show_list(sqlist l)
/*最後乙個資料是沒有被輸出出來的,所以以下對於最後乙個元素做了單獨的輸出*/
printf("no.%d 's data is %d\n",i,l.store[i].data);
printf("there is no data left\n");
} /*靜態鍊錶插入資料函式*/
int insert_list(sqlist *l)
//迴圈查詢到相應的位置
printf("the data you rearched is :%d\n",l.store[p].data);
} return 0;
} int delete_list(sqlist *l)
//找到刪除位置的上乙個位置
q=(*l).store[p].next;//找到刪除的元素位置
(*l).store[q].next=(*l).free_h;//將刪除的元素的空間加入到空閒鍊錶的頭部
(*l).free_h=q;//空閒鍊錶的起始位址改變為新加入的刪除元素的位置
return 0;
}
靜態鍊錶的基本操作
靜態鍊錶的基本操作包括建立與輸出,刪除與插入操作與單鏈表類似,麻煩的點在於每次遍歷都要建立兩個臨時變數,還要特殊判斷第乙個節點,並將刪除後的節點再次初始化其游標的值,就不寫了 include include typedef struct node node define maxsize 1000 t...
靜態鍊錶的基本操作
上節,我們初步建立了乙個靜態鍊錶,本節學習有關靜態鍊錶的一些基本操作,包括對錶中資料元素的新增 刪除 查詢和更改。本節是建立在已能成功建立靜態鍊錶的基礎上,因此我們繼續使用上節中已建立好的靜態鍊錶學習本節內容,建立好的靜態鍊錶如圖 1 所示 圖 1 建立好的靜態鍊錶 例如,在圖 1 的基礎,將元素 ...
鍊錶的基本概念以及靜態鍊錶和動態鍊錶
鍊錶概念 鍊錶使用說明 畫圖示意 建立關係 node1.next node2 node2.next node3 node3.next node4 node4.next node5 node5.next null lk struct linknode lk nodecurrent node1 遍歷輸出...