博智資料結構 企業鍊錶

2021-09-07 15:30:41 字數 2676 閱讀 1379

企業鍊錶節點中不包含資料項,只有指標項,資料項使用者自己定義,只需要把鍊錶節點放入使用者自定義資料項的頂端即可。

鍊錶的結構體定義如下:

#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域 存放結點的直接後繼的位址 位置 的指標域 鏈域 以 結點的序列 ...