標頭檔案:link_0505.h
/* 煉表演示
*/ #ifndef __link_0505
#define __link_0505
typedef struct nodenode;
typedef struct
link;
//鍊錶的初始化函式
void link_init(link *);
//鍊錶的清理函式
void link_deinit(link *);
//判斷鍊錶是否空的函式
int link_empty(link *);
//判斷鍊錶是否滿的函式
int link_full(link *);
//統計有效數字個數的函式
int link_size(link *);
//在最前邊插入數字的函式
int link_add_head(link *, int );
//在最後邊插入新的數字的函式
int link_append(link *, int );
//把數字按照順序插入到鍊錶的函式
int link_insert(link *, int);
//刪除最前面數字的函式
int link_remove_head(link *);
//刪除最後乙個有效數字
int link_remove_tail(link *);
//刪除某個給定數字的函式
int link_remove(link *, int );
//獲得第乙個有效數字的函式
int link_get_head(link *, int *);
//獲得最後乙個有效數字的函式
int link_get_tail(link *, int *);
//獲得指定編號數字的函式
int link_get(link *, int *, int );
#endif
實現**: link_0505.cpp
/* 煉表演示
*/ #include "stdlib.h"
#include "link_0505.h"
//鍊錶的初始化函式
void link_init(link *p_link)
//鍊錶的清理函式
void link_deinit(link *p_link) }
//判斷鍊錶是否空的函式
int link_empty(link *p_link)
//判斷鍊錶是否滿的函式
int link_full(link *p_link)
//統計有效數字個數的函式
int link_size(link *p_link)
} return cnt;
} //在最前邊插入數字的函式
int link_add_head(link *p_link, int num)
p_temp->num = num;
node *p_first = &(p_link->head);
node *p_mid = p_first->p_next;
node *p_last = p_mid->p_next;
p_first->p_next = p_temp;
p_temp->p_next = p_mid;
return 1;
} //在最後邊插入新的數字的函式
int link_append(link *p_link, int num)
p_tmp->num = num;
for (p_node = &(p_link->head);p_node != &(p_link->tail);p_node = p_node->p_next)
} return 1;
} //把數字按照順序插入到鍊錶的函式
int link_insert(link *p_link, int num)
p_temp->num = num;
p_temp->p_next = null;
for (p_node = &(p_link->head);p_node != &(p_link->tail);p_node = p_node->p_next)
} return 0;
} //刪除最前面數字的函式
int link_remove_head(link *p_link)
p_first->p_next = p_last;
free(p_mid);
p_mid = null;
} //刪除最後乙個有效數字
int link_remove_tail(link *p_link)
} returhqaaldjvn 0;
} //刪除某個給定數字的函式
int link_remove(link *p_link, int num)
} return 0;
} //獲得第乙個有效數字的函式
int link_get_head(link *p_link, int *p_num)
node *p_first = &(p_link->head);
node *p_mid = p_first->p_next;
node *p_last = p_mid->p_next;
p_first->p_next = p_last;
*p_num = p_mid->num;
return 1;
} //獲得最後乙個有效數字的函式
int link_get_tail(link *p_link, int *p_num)
} return 0;
} //獲得指定編號數字的函式
int link_get(link *p_link, int *p_num, int num)
cnt++;
} return 0;
}測試函式:
/* * 鍊錶測試
* */
#include
#include "link_0505.h"
int main() ;
link_init(&lnk);
link_add_head(&lnk, 30);
link_add_head(&lnk, 20);
link_append(&lnk, 90);
link_append(&lnk, 100);
link_insert(&lnk, 50);
link_insert(&lnk, 60);
link_insert(&lnk, 40);
link_insert(&lnk, 80);
link_insert(&lnk, 70);
size = link_size(&lnk);
for (num = 0;num <= size - 1;num++)
printf("\n");
printf("------------------");
link_remove_head(&lnk);
link_remove_tail(&lnk);
link_remove(&lnk, 70);
size = link_size(&lnk);
for (num = 0;num <= size - 1;num++)
printf("\n");
link_get_head(&lnk, &val);
printf("最前面的數字是%d\n", val);
link_get_tail(&lnk, &val);
printf("最後面的數字是%d\n", val);
link_deinit(&lnk);
return 0;
} 本文標題: c語言鍊錶完整操作演示
本文位址:
C語言鍊錶綜合操作
預處理命令 include include define len sizeof struct student define format ld,f define p format ld 5.1f n define null 0 構造結構體 struct student 構造乙個結構體型別 int n...
鍊錶操作集合 C語言
主要是給自己以後複習知識,還有進行修改優化用的 歡迎批評,其中鍊錶合併的就地合併我並未掌握,我用了新的頭結點以後要補上 首先是標頭檔案定義 ifndef andrew define andrew include include include include include define size ...
C語言(5) 鍊錶操作
1.顯示鍊錶元素 1 把鍊錶首結點作為當前結點 2 判斷當前結點是否為null,為null則輸出結果 3 輸出當前結點的值 4 把鍊錶的下一結點作為當前結點 5 重複執行步驟 1 3 例.編寫乙個函式,顯示head指向開始結點的鍊錶所有元素。struct snode void write struc...