当前位置: 首页 > 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.rkmt.cn/news/5033.html

相关文章:

  • 国产代码托管平台Gitee崛起:企业数字化转型的安全基石
  • C#通过TCP/IP控制康奈视读码枪实现方案
  • 利用三方APP[IP切换助手]使用socks5
  • 威力导演2026中文版 CyberLink PowerDirector 2026 v24.0 旗舰版更新内容
  • 本地大模型的崛起:为什么越来越多人不用云端 AI?
  • Windows截图工具Acropalypse漏洞剖析:开发者中心安全的重要教训
  • bootstrap-flex总结
  • 【源码解读之 Mybatis】【基础篇】-- 第2篇:配置系统深度解析
  • PythonFlask 运用 DBUtils 创建通用连接池
  • MahMetro 框架学习
  • git clone操作报错diffie-hellman-group1-sha1的解决方案
  • 都可以!燕千云ITSM一站式接入全球主流AI大模型
  • 问题解决模板
  • 鸿蒙应用开发从入门到实战(五):ArkUI概述
  • ABC 423先慢慢改吧题解
  • 汇聚层交换机的替换要考虑到的因素
  • git 常见使用
  • python UV 包管理工具安装
  • latex 打印生僻字
  • 电机ADC采集
  • 道德经
  • Go by Example(3.Variables)
  • 9.3-9.10周报七
  • 学习心得
  • 基于Python+Vue开发的农产品商城管理系统源码+运行
  • 多人多次并发
  • B. Alternating Current
  • 深入解析:【JavaEE】网络原理初识
  • 爬虫逆向--Day22Day23--核心实战案例【荔枝网】【WASM学习】
  • Ubuntu上进行Zookeeper集群部署