码迷,mamicode.com
首页 > 编程语言 > 详细

C语言单链表

时间:2020-05-18 22:41:22      阅读:64      评论:0      收藏:0      [点我收藏+]

标签:font   函数声明   单链表   插入   sizeof   数据查找   返回   malloc   类型   

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__ */

  

C语言单链表

标签:font   函数声明   单链表   插入   sizeof   数据查找   返回   malloc   类型   

原文地址:https://www.cnblogs.com/veis/p/12913196.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!