C語言實現單鏈表的基本操作

2021-07-30 22:45:53 字數 2741 閱讀 2573

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;

typedef struct node

node,*pnode;

// 初始化單鏈表

void initlist(pnode* phead);

//尾插

void pushback(pnode* phead, datatype data);

// 尾刪

void popback(pnode* phead);

// 頭插

void pushfront(pnode* phead, datatype data);

// 頭刪

void popfront(pnode* phead);

// 在單鏈表中查詢值為data的結點,找到了返回該結點的位址,否則返回null

node* find(pnode phead, datatype data);

// 在單鏈表pos位置後插入值為data的結點

void insert(pnode pos, datatype data);

// 在單鏈表中刪除位置為pos的結點

void erase(pnode* phead, pnode pos);

// 移除單鏈表中第乙個值為data的結點

void remove(pnode* phead, datatype data);

// 移除單鏈表中所有值為data的結點

void removeall(pnode* phead, datatype data)

// 獲取單鏈表總結點的總個數

size_t size(pnode phead);

// 判斷結點是否為空

int empty(pnode phead);

// 返回單鏈表的最後乙個結點的位置

pnode back(pnode phead);

// 返回單鏈表的第乙個結點的位置

pnode front(pnode phead);

// 構建乙個新節點

node* buynode(datatype data);

// 正向列印單鏈表

void printlist(pnode phead);

//銷毀鍊錶

void destroylist(pnode *phead);

#endif

listnode.c

#include

"listnode.h"

// 初始化單鏈表

void initlist(pnode* phead)

//尾插

void pushback(pnode* phead, datatype data)

}// 尾刪

void popback(pnode* phead)

else

free(pnode->_pnext );

pnode->_pnext =

null;

}}// 頭插

void pushfront(pnode* phead, datatype data)

// 頭刪

void popfront(pnode* phead)

else

}// 在單鏈表中查詢值為data的結點,找到了返回該結點的位址,否則返回null

node* find(pnode phead, datatype data)

// 在單鏈表pos位置後插入值為data的結點

void insert(pnode pos, datatype data)

// 在單鏈表中刪除位置為pos的結點

void erase(pnode* phead,pnode pos)

}}// 移除單鏈表中第乙個值為data的結點

void remove(pnode* phead, datatype data)

}// 移除單鏈表中所有值為data的結點

void removeall(pnode* phead, datatype data)

else

else

pdelnode = pdelnode->_pnext;

} } // 返回單鏈表的第乙個結點的位置

pnode front(pnode phead)

}// 返回單鏈表的最後乙個結點的位置

pnode back(pnode phead)

}// 獲取單鏈表總結點的總個數

size_t size(pnode phead)

return count;

}// 判斷結點是否為空

int empty(pnode phead)

// 正向列印單鏈表

void printlist(pnode phead)

printf("\n");

}// 構建乙個新節點

node* buynode(datatype data)

return pnewnode;

}//銷毀鍊錶

void destroylist(pnode *phead)

}

單鏈表的基本操作(C語言實現)

單鏈表的初始化,建立,插入,查詢,刪除。include include typedef int elemtype 定義結點型別 typedef struct node node,linkedlist 單鏈表的初始化 linkedlist linkedlistinit 單鏈表的建立1,頭插法建立單鏈表...

單鏈表 的基本操作 c語言實現

鍊錶的基本操作 c語言實現 執行環境 dev c 5.11 以下為原始碼,如有不正確的地方歡迎指正!include include define false 0 define true 1 typedef int datatype typedef struct nodelinklist linkli...

單鏈表的基本操作(C語言實現)

首先我來介紹一下要實現的的單鏈表基本基本操作有哪些 建立節點,頭尾的插入和刪除,某個位置的插入和刪除,查詢某個資料是否存在於單鏈表中。我們將從以下四方面對上述操作進行實現。1 單鏈表的結構體 typedef struct listnode listnode 2 以下是我們要實現的函式介面 listn...