企業鍊錶節點中不包含資料項,只有指標項,資料項使用者自己定義,只需要把鍊錶節點放入使用者自定義資料項的頂端即可。
鍊錶的結構體定義如下:
#include #include //鍊錶小結點
typedef struct linknode
linknode;
//鍊錶結點
typedef struct linklist
linklist;
//遍歷函式指標
typedef void(*printnode)(linknode*);
//比較函式指標
typedef int(*comparenode)(linknode*, linknode*);
//初始化鍊錶
linklist*init_linklist();
//插入
void inset_linklist(linklist*list, int pos, linknode*data);
//刪除
void remove_linklist(linklist*list, int pos);
//返回鍊錶大小
int size_linklist(linklist*list);
//列印
void print_linklist(linklist*list, printnode print);
//釋放鍊錶記憶體
void freespace_linklist(linklist*list);
//查詢
int find_linklist(linklist*list, linknode *data,comparenode compare);
#endif
#include "linklist.h"
//初始化鍊錶
linklist*init_linklist()
//插入
void inset_linklist(linklist*list, int pos, linknode*data)
if (data ==null)
if (pos<0||pos>list->size)
//查詢插入位置
linknode*pcurrent = &(list->head);
for (int i = 0; i < pos; i++)
//插入新節點
data->next = pcurrent->next;
pcurrent->next = data;
list->size++;
}//刪除
void remove_linklist(linklist*list, int pos)
if (pos<0||pos>=list->size)
//輔助指標
linknode*pcurrent = &(list->head);
for (int i = 0; i < pos; i++ )
//刪除節點
pcurrent->next = pcurrent->next->next;
list->size--;
}//返回鍊錶大小
int size_linklist(linklist*list);
//列印
void print_linklist(linklist*list, printnode print)
//查詢插入位置
linknode*pcurrent = list->head.next;
while (pcurrent!=null) }
//釋放鍊錶記憶體
void freespace_linklist(linklist*list)
free(list);
}//查詢
int find_linklist(linklist*list, linknode *data, comparenode compare)
if (data==null)
//輔助指標
linknode*pcurrent = list->head.next;
int index = 0;
int flag = -1;
while (pcurrent!=null)
pcurrent = pcurrent->next;
index++;
} return flag;
}
#include"linklist.h"
#include //#define _crt_secure_no_warnings
typedef struct person
person;
void myprint(linknode*data)
int mycompare(linknode*node1, linknode*node2)
else }
int main()
使用者自己資料型別, 資料結構 鍊錶4 企業鍊錶
linklist.h ifndef linklist h define linklist h include include 鍊錶結點 typedef struct linknode linknode 鍊錶 typedef struct linklistlinklist 比較函式指標 typedef...
資料結構 鍊錶
鍊錶 what 就是一張鏈式儲存的表,是一種資料結構,是基礎,所以還是不要想有什麼用。具體呢?在c中就用結構體實現物件描述,然後通過函式來實現各個基本操作 c 則用類來表述,c中的結構體就可以看成c 中的類,然後通過類封裝各個操作步驟。這些操作實現後就需要 來測試,號稱demo,就是main函式裡面...
資料結構 鍊錶
鍊錶中的資料是以節點來表示的,每個結點的構成 元素 資料元素的映象 指標 指示後繼元素儲存位置 元素就是儲存資料的儲存單元,指標就是連線每個結點的位址資料。鍊錶的結點結構 data next data域 存放結點值的資料域 next域 存放結點的直接後繼的位址 位置 的指標域 鏈域 以 結點的序列 ...