求链表最大值及其位置c语言,C语言:链表

本文介绍了C语言中链表的基本概念,包括单链表的结构和节点组成。接着详细阐述了如何在链表中插入新节点,通过分析流程图展示了插入过程,并针对边缘情况进行了讨论,如插入值大于链表最大值或小于最小值的情况。最后给出了完整的插入函数代码实现。
摘要由CSDN通过智能技术生成

一、链表的基本概念

这一节讲解一下C语言中的链表,并且只讲解单链表。在单链表中,每一个节点包含一个指向链表下一个节点的指针。链表最后一个节点的指针字段的值为NULL,提示链表后面不再有其他节点。在你找到链表的第一个节点后,指针就可以带你访问剩余的所有节点。为了记住链表的起始位置,可以使用根指针(root pointer)。根指针指向链表的第一个节点。根指针只是一个指针,它不包含任何数据。示意图如下:

450a79620d0564afac92aaf516be2c00.png

所以,我们可以根据链表的结构,创建对应的结构体:

typedef struct NODE {

struct NODE *link;

int value;

} Node;

1. 每个节点中保存了下一个节点的地址,用 *link存储。

2. 每个节点中又有自己的值,存储在value中。

在上面的图中,这些节点相邻在一起,这是为了显示链表所提供的逻辑顺序。事实上,链表中的节点可能分布于内存中的各个地方。各节点在物理上是否相邻并没有什么关系,因为程序始终用链(指针)从一个节点移动到另一个节点。

二、 单链表的插入

假设我们有一个新值12,想把它插入到上图的链表中。思路是非常清晰的,从链表的起始位置开始,跟随指针直到找到第一个值大于12的节点,然后把这个新值插入到那个节点之前的位置。但是前一个节点的指针字段必须进行修

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值