鍊錶 C語言實現(一)

2021-08-22 07:18:35 字數 924 閱讀 8014

由於cherry不太擅長c,故本系列文章中難免會有紕漏,但cherry會盡力把演算法的思路寫清楚啦!

//typedef 作用:給型別起別名

typedef

struct listnode *ptrtonode;

typedef ptrtonode position;//起別名為:position

typedef ptrtonode list;//起別名為:list

struct listnode

int

isempty(list l)

int 

islast(position p,list l)

position

find(elementtype x,list l)

return p;//若沒有找到,則返回null

}

//1.找到當前元素b之前的元素a

//2.讓元素a的next指標指向元素b之後的元素c

//3.釋放記憶體

void

delete(elementtype x,list l)

}

position

findprevious(elementtype x,list l)

return pre;

}

//1.開闢乙個struct listnode結構體的記憶體空間b

//2.讓b的next指標指向p的next,p的next指標指向b的位置

void

insert(elementtype x,position p,list l)

鍊錶的C語言實現(一

一 為什麼用動態記憶體分配 但我們未學習鍊錶的時候,如果要儲存數量比較多的同型別或同結構的資料的時候,總是使用乙個陣列。比如說我們要儲存乙個班級學生的某科分數,總是定義乙個float型 存在0.5分 陣列 float score 30 但是,在使用陣列的時候,總有乙個問題困擾著我們 陣列應該有多大?...

鍊錶的C語言實現

編輯 c巨集例項 以下 摘自linux核心2.6.21.5原始碼 部分 展示了鍊錶的另一種實現思路,未採用ansi c標準,採用gnu c標準,遵從gpl版權許可。struct list head define list head init name define list head name st...

雙向鍊錶C語言實現

ifndef stdlist h define stdlist h typedef struct tagstdnode stdnode,lpstdnode typedef struct tagstdlist stdlist,lpstdlist 鍊錶資料結構 struct tagstdnode 鍊錶節...