查找单链表中最大节点,单链表寻找值最大的结点

首页 > 经验 > 作者:YD1662022-11-04 00:12:13

说真的,任何说起嵌入式软件怎么入门啊?需要学些什么东西啊,我差不多一致的回答都是:软件方面C语言和数据结构加上一些简单常用的算法,这些需要学好。

借着自己的回顾学习,我也写一些基础的数据结构知识,多画图,少BB,与大家一起学习数据结构

顺序存储和链式存储数组—顺序存储

数组作为一个顺序储存方式的数据结构,可是有大作为的,它的灵活使用为我们的程序设计带来了大量的便利;

但是,但是,数组最大的缺点就是我们的插入和删除时需要移动大量的元素,所以呢,大量的消耗时间,以及冗余度难以接受了。

以C语言数组插入一个元素为例,当我们需要在一个数组{1,2,3,4}的第1个元素后的位置插入一个’A’时,我们需要做的有:

  1. 将第1个元素后的整体元素后移,形成新的数组{1,2,2,3,4}
  2. 再将第2个元素位置的元素替换为我们所需要的元素’A’
  3. 最终形成我们的预期,这需要很多的操作喔。

查找单链表中最大节点,单链表寻找值最大的结点(1)

上图可以看出,使用数组都有这两大缺点:

  1. 插入删除操作所需要移动的元素很多,浪费算力。
  2. 必须为数组开足够的空间,否则有溢出风险。
链表—链式存储

由于数组的这些缺点,自然而然的就产生链表的思想了。

链表通过不连续的储存方式,自适应内存大小,以及指针的灵活使用,巧妙的简化了上述的内容。

链表的基本思维是,利用结构体的设置,额外开辟出一份内存空间去作指针,它总是指向下一个结点,一个个结点通过NEXT指针相互串联,就形成了链表。

查找单链表中最大节点,单链表寻找值最大的结点(2)

其中DATA为自定义的数据类型,NEXT为指向下一个链表结点的指针,通过访问NEXT,可以引导我们去访问链表的下一个结点。

对于一连串的结点而言,就形成了链表如下图:

查找单链表中最大节点,单链表寻找值最大的结点(3)

上文所说的插入删除操作只需要修改指针所指向的区域就可以了,不需要进行大量的数据移动操作。如下图:

查找单链表中最大节点,单链表寻找值最大的结点(4)

首页 12345下一页

栏目热文

文档排行

本站推荐

Copyright © 2018 - 2021 www.yd166.com., All Rights Reserved.