C C 萬能迴圈雙向鍊錶 實用)

2021-10-10 22:25:55 字數 1907 閱讀 3305

在雙向鍊錶的基礎上,使鍊錶可以儲存任意的資料

建立鍊錶時,為鍊錶開頭新增空節點,方便操作

節點node中ptr指標指向需要儲存的資料

#include #include #include #include typedef struct node

node;

//建立節點

node* create_node(void *ptr)

typedef struct list

list;

//建立帶空節點的鍊錶

list* create_list(void)

//在next節點和prev節點之間,新增資料為ptr節點

void _add_list(node* prev,node* next,void* ptr)

//刪除node節點

void _del_list(node* node)

//尋找下標為index(從0開始)的節點

node* _index_list(list* list,int index)

//尋找資料為value的節點,cmp為函式指標,存放比較的內容

node* _value_list(list* list,void* value,int (*cmp)(void*,void*))

return null;

}//頭新增

void add_head_list(list* list,void* ptr)

//尾新增

void add_tail_list(list* list,void *ptr)

//指定位置新增節點

bool add_index_list(list* list,int index,void* ptr)

//指定value值前新增節點

bool add_value_list(list* list,void* value,void* ptr,int (*cmp)(void*,void*))

//頭刪除

bool del_head_list(list* list)

//尾刪除

bool del_tail_list(list* list)

//指定位置刪除

bool del_index_list(list* list,int index)

//指定資料刪除

bool del_value_list(list* list,void* value,int (*cmp)(void*, void*))

//遍歷

void show_list(list* list,void(*show)(void*))

puts("*********顯示完畢*********");

}int main(int argc,const char* ar**)

student;

//遍歷資料

void show_stu(void* ptr)

//比較姓名相等

int cmp(void* p1,void* p2)

list* list = create_list();

for(int i=0;i<10;i++)

student stu = ;

student stu2 = ;

add_value_list(list,&stu2,&stu,cmp);

//add_index_list(list,0,&stu);

show_list(list,show_stu);

//del_head_list(list);

//del_tail_list(list);

//del_index_list(list,10);

del_value_list(list,&stu,cmp);

show_list(list,show_stu);

}

實用PHP技巧 萬能Cache

web程式設計師最常使用的資料庫封裝方式就是dao,其實和馬丁大爺在poeaa中所說的表資料入口差不多 01 class articledao 02 07 08 public function findbytitle title 09 12 如上所示,是乙個最簡單的dao例子,為了提高效率,很多時候...

雙向鍊錶和雙向迴圈鍊錶

和單向鍊錶相比,多了乙個前驅結點。如果他為空,那麼next和prior都指向自己。而對於雙迴圈鍊錶,只需要最後乙個元素的next指向head next,head next的prior指向最後乙個節點即可。新節點s插入鍊錶,s next給p結點,s prior給p prior,然後,p prior n...

迴圈鍊錶,雙向鍊錶

迴圈鍊錶 迴圈鍊錶與順序鍊錶之間的區別 迴圈鍊錶最後乙個資料的next指標域不為空,而是指向頭結點,其他基本操作大體相同,只是在判斷表結束的條件變為判斷節點的引用域是否為頭引用 雙向鍊錶 author neosong date oct 10,2017 4 43 01 pm program of in...