C語言鍊錶完整操作演示

2022-10-03 15:12:17 字數 3976 閱讀 9563

標頭檔案: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...