zoukankan      html  css  js  c++  java
  • 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__ */
    

      

  • 相关阅读:
    流行的as3内存释放hack的方法
    干掉这个网页
    Flex元标签笔记Event
    javascript for oop
    asdoc 注释格式
    怎么比较word文档,怎么比较excel文档
    AS3匿名函数的this指向
    SVN空间
    CodeForces 315.D Sereja and Periods
    Html5 filltext
  • 原文地址:https://www.cnblogs.com/veis/p/12913196.html
Copyright © 2011-2022 走看看