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

      

  • 相关阅读:
    修改Ubuntu从文本界面登录
    Putty等工具中解决SSH连接超时断开的问题
    QoS policy-map class-map
    Linux中的do{...} while(0)
    手动增加swap分区
    __attribute__ 机制详解(一)
    欢迎来语雀关注我
    WebForm 生成并显示二维码
    《C#图解教程》 总览
    C#图解教程 第二十五章 其他主题
  • 原文地址:https://www.cnblogs.com/veis/p/12913196.html
Copyright © 2011-2022 走看看