C语言单链表
1、源代码
#include "list.h" // 1、创建头结点 Node * CreateHeadeNode(void) { Node *pHead = (Node *)malloc(sizeof(Node)); pHead->m_pNext = NULL; return pHead; } // 2、创建新结点 Node * CreateNewNode(DATA data) { Node *pNew = (Node *)malloc(sizeof(Node)); pNew->m_pNext = NULL; pNew->data = data; return pNew; } // 3、头插入法插入节点 void InsertNodeByHead(Node *pHead, DATA data) { Node *pNew = CreateNewNode(data); pNew->m_pNext = pHead->m_pNext; pHead->m_pNext = pNew; } // 4、删除结点 void RemoveNodeByData(Node *pHead, DATA data) { Node *pCurNode = pHead->m_pNext; Node *pPreNode = pHead; while (pCurNode != NULL && pCurNode->data != data) { pPreNode = pCurNode; pCurNode = pPreNode->m_pNext; } if (pCurNode == NULL) return; pPreNode->m_pNext = pCurNode->m_pNext; free(pCurNode); pCurNode = NULL; } // 5、通过数据查找结点 // 返回NULL表示没有找到 // 非NULL表示找到 Node * SearchNodeByData(Node *pHead, DATA data) { Node *p = pHead->m_pNext; while (p != NULL && p->data != data) { p = p->m_pNext; } return p; }
2、头文件
#ifndef __LIST_H__ #define __LIST_H__ #include <stdio.h> /* 定义数据类型 */ typedef int DATA; typedef struct _Node_ { DATA data; struct _Node_ *m_pNext; }Node; /* 函数声明区域 */ Node * CreateHeadeNode(void); // 创建头结点 Node * CreateNewNode(DATA data); // 创建新结点 void InsertNodeByHead(Node *pHead, DATA data); // 插入一个结点 void RemoveNodeByData(Node *pHead, DATA data); // 删除一个结点 Node * SearchNodeByData(Node *pHead, DATA data); // 查找一个结点 void ListAllNode(Node *pHead); // 打印链表数据 #endif /* __LIST_H__ */
相关推荐
alicelmx 2020-06-16
学习 2020-05-31
Cypress 2020-03-01
niushao 2020-01-19
xhao 2019-12-15
DemoQiao 2019-04-23
weiwolves 2018-09-10
mingyunxiaohai 2018-09-19
夏乐宾 2017-06-01
zhangxiafll 2012-02-02
kunfeifeifei 2018-04-12
广西信息安全学会 2018-12-19
thousfeet 2015-07-20
飞空静渡 2009-11-25
小金屋 2019-04-16
phptyong 2016-07-04
phpcrazy 2016-07-05
PHP100 2019-03-28
BitTigerio 2018-04-11