linklist.h
#ifndef __link_list_h__
#define __link_list_h__
#include
#include
#include
typedef int datatype;//定義資料型別
typedef struct node
node, *pnode;
//初始化鍊錶
void initlinklist(pnode* phead);
//給鍊錶建立新結點
pnode buynode(datatype x);
//正向列印鍊錶
void printlinklist(pnode phead);
//逆向列印鍊錶(遞迴列印)
void printlinklistformptailnode(pnode phead);
//給鍊錶尾插
void pushback(pnode* phead, datatype x);
//給鍊錶尾刪
void popback(pnode* phead);
//給煉表頭插
void pushfront(pnode* phead, datatype x);
//給煉表頭刪
void popfront(pnode* phead);
// 求煉表中節點的個數
size_t size(pnode phead);
// 正向銷毀單鏈表
void destroylist(pnode* phead);
// 逆向銷毀鍊錶(遞迴刪除)
void destroylinklistptailnode(pnode*phead);
#endif//__link_list_h__
linklist.c
#include
"linklist.h"
//初始化鍊錶
void initlinklist(pnode* phead)
//給鍊錶建立新結點
pnode buynode(datatype x)
}//正向列印鍊錶
void printlinklist(pnode phead)
printf("null\n");
}}//逆向列印鍊錶(使用遞迴)
void printlinklistformptailnode(pnode phead)
}//逆向列印鍊錶時,尾節點後面沒有 "null",例如:3-->2-->1-->
//所以封裝乙個函式,給尾節點加null,就變成3-->2-->1-->null
void printlinklistformptailnode2(pnode phead)
//給鍊錶尾插
void pushback(pnode* phead, datatype x)//尾插函式
ptail->pnext = pcur;
}}//給鍊錶尾刪
void popback(pnode* phead)
else
ptail->pnext = pcur;
free(pcur);
pcur =
null;
}}//給煉表頭插
void pushfront(pnode* phead, datatype x)
}//給煉表頭刪
void popfront(pnode* phead)
}//求煉表中節點的個數
size_t size(pnode phead)
return count;
}// 正向銷毀單鏈表
void destroylist(pnode* phead)
*phead =
null;
}// 逆向銷毀鍊錶(遞迴法銷毀)
void destroylinklistptailnode(pnode*phead)
}
test.c
#include"linklist.h"
void test()
int main()
單鏈表的基本操作(C語言實現)
單鏈表的初始化,建立,插入,查詢,刪除。include include typedef int elemtype 定義結點型別 typedef struct node node,linkedlist 單鏈表的初始化 linkedlist linkedlistinit 單鏈表的建立1,頭插法建立單鏈表...
C語言實現單鏈表的基本操作
listnode.h ifndef listnode h define listnode h include stdio.h include assert.h include stdlib.h typedef int datatype typedef unsigned int size t type...
單鏈表 的基本操作 c語言實現
鍊錶的基本操作 c語言實現 執行環境 dev c 5.11 以下為原始碼,如有不正確的地方歡迎指正!include include define false 0 define true 1 typedef int datatype typedef struct nodelinklist linkli...