当前位置: 首页 > news >正文

链表

image
image

点击查看代码
/********************************************************************************************************
*
*
* 
*
* 
*
* Copyright (c)  2023-2024   cececlmx@126.com   All right Reserved
* ******************************************************************************************************///指的是单向链表中的结点有效数据类型,用户可以根据需要进行修改
typedef int  DataType_t;//构造链表的结点,链表中所有结点的数据类型应该是相同的
typedef struct LinkedList
{DataType_t  		 data; //结点的数据域struct LinkedList	*next; //结点的指针域}LList_t;//创建一个空链表,空链表应该有一个头结点,对链表进行初始化
LList_t * LList_Create(void)
{//1.创建一个头结点并对头结点申请内存LList_t *Head = (LList_t *)calloc(1,sizeof(LList_t));if (NULL == Head){perror("Calloc memory for Head is Failed");exit(-1);}//2.对头结点进行初始化,头结点是不存储有效内容的!!!Head->next = NULL;//3.把头结点的地址返回即可return Head;
}//创建新的结点,并对新结点进行初始化(数据域 + 指针域)
LList_t * LList_NewNode(DataType_t data)
{//1.创建一个新结点并对新结点申请内存LList_t *New = (LList_t *)calloc(1,sizeof(LList_t));if (NULL == New){perror("Calloc memory for NewNode is Failed");return NULL;}//2.对新结点的数据域和指针域进行初始化New->data = data;New->next = NULL;return New;
}//头插
bool LList_HeadInsert(LList_t *Head,DataType_t data)
{//1.创建新的结点,并对新结点进行初始化LList_t *New = LList_NewNode(data);if (NULL == New){printf("can not insert new node\n");return false;}//2.判断链表是否为空,如果为空,则直接插入即可if (NULL == Head->next){Head->next = New;return true;}//3.如果链表为非空,则把新结点插入到链表的头部New->next  = Head->next;Head->next = New;return true;
}bool LList_TailInsert(LList_t *Head,DataType_t data)bool LList_DestInsert(LList_t *Head,DataType_t dest,DataType_t data)//遍历
void LList_Print(LList_t *Head)
{//对链表的头文件的地址进行备份LList_t *Phead = Head;//首结点while(Phead->next){//把头的直接后继作为新的头结点Phead = Phead->next;//输出头结点的直接后继的数据域printf("data = %d\n",Phead->data);}}int main(int argc, char const *argv[])
{return 0;
}
http://www.wxhsa.cn/company.asp?id=4512

相关文章:

  • 利用三方APP[IP切换助手]使用socks5
  • 智能卫浴雷达模块感应方案WT4101寿命长不怕干扰
  • 修改Windows 资源器中文件的创建时间或更新时间
  • Mysql练习,15个必练语句带你玩转数据库
  • 威力导演2026中文版 CyberLink PowerDirector 2026 v24.0 旗舰版更新内容
  • 越权漏洞
  • GAS_Aura-Ability Tasks
  • 本地大模型的崛起:为什么越来越多人不用云端 AI?
  • Gitee:国产代码托管平台如何重塑企业研发效能版图
  • CompassBench 大模型评测
  • Windows截图工具Acropalypse漏洞剖析:开发者中心安全的重要教训
  • bootstrap-flex总结
  • 【源码解读之 Mybatis】【基础篇】-- 第2篇:配置系统深度解析
  • eSIM笔记
  • 拯救者Y7000过热降频解决方法
  • 普通大语言模型(LLM)和向量化模型(Embedding Model)的区别以及其各自的作用
  • ios电脑如何改成windows系统
  • PythonFlask 运用 DBUtils 创建通用连接池
  • 帧同步、快照同步与状态同步
  • 内存一致性模型
  • MahMetro 框架学习
  • 基于MATLAB的标准化降水蒸散指数(SPEI)实现
  • Prometheus Probe 监控配置文档
  • 客户案例|邦普循环x甄知科技,筑牢高效智能的IT运维底座
  • VMware Exporter 指标转换方案
  • 可5V使用引脚兼容STM32F103C8T6的国产32位MCU
  • git clone操作报错diffie-hellman-group1-sha1的解决方案
  • Celery inspect 常用命令手册
  • 都可以!燕千云ITSM一站式接入全球主流AI大模型
  • 删边最短路