当前位置:首页 > 经验 >

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

来源:原点资讯(www.yd166.com)时间:2022-11-04 00:12:13作者:YD166手机阅读>>

相比起数组,链表解决了数组不方便移动,插入,删除元素的弊端,但相应的,链表付出了更加大的内存牺牲换来的这些功能的实现。

链表概述

包含单链表,双链表,循环单链表,实际应用中的功能不同,但实现方式都差不多。

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

  • 单链表就像是美国男篮,一代一代往下传;
  • 双链表像是中国男足,你传球给我,我传球给你,最终传给了守门员;
  • 循环链表就像是中国男篮,火炬从姚明传给王治郅,王治郅传给易建联,现在易建联伤了,又传给了姚明
单链表单链表概念和简单的设计

单链表是一种链式存取的数据结构,链表中的数据是以结点来表示的,每个结点由元素和指针构成。

元素表示数据元素的映象,就是存储数据的存储单元;指针指示出后继元素存储位置,就是连接每个结点的地址数据。

以结点的序列表示的线性表称作线性链表,也就是单链表,单链表是链式存取的结构。

对于链表的每一个结点,我们使用结构体进行设计,其主要内容有:

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

其中,DATA数据元素,可以为你想要储存的任何数据格式,可以是数组,可以是int,甚至可以是结构体(这就是传说中的结构体套结构体)

NEXT为一个指针,其代表了一个可以指向的区域,通常是用来指向下一个结点,链表的尾部NEXT指向NULL(空),因为尾部没有任何可以指向的空间了

故,对于一个单链表的结点定义,可以代码描述成:

//定义结点类型 typedefstructNode{ intdata;//数据类型,你可以把int型的data换成任意数据类型,包括结构体struct等复合类型 structNode*next;//单链表的指针域 }Node,*LinkedList; //Node表示结点的类型,LinkedList表示指向Node结点类型的指针类型 链表的初始化

初始化主要完成以下工作:创建一个单链表的前置节点并向后逐步添加节点,一般指的是申请结点的空间,同时对一个结点赋空值(NULL),其代码可以表示为:

LinkedListlistinit(){ Node*L; L=(Node*)malloc(sizeof(Node));//开辟空间 if(L==NULL){//判断是否开辟空间失败,这一步很有必要 printf("申请空间失败"); //exit(0);//开辟空间失败可以考虑直接结束程序 } L->next=NULL;//指针指向空 }

注意:一定要判断是否开辟空间失败,否则生产中由于未知的情况造成空间开辟失败,仍然在继续执行代码,后果将不堪设想啦,因此养成这样的判断是很有必要的。

头插入法创建单链表

利用指针指向下一个结点元素的方式进行逐个创建,使用头插入法最终得到的结果是逆序的。如图所示:

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

从一个空表开始,生成新结点,并将读取到的数据存放到新结点的数据域中,然后将新结点插入到当前链表的表头,即头结点之后。

//头插法建立单链表 LinkedListLinkedListCreatH(){ Node*L; L=(Node*)malloc(sizeof(Node));//申请头结点空间 L->next=NULL;//初始化一个空链表 intx;//x为链表数据域中的数据 while(scanf("%d",&x)!=EOF){ Node*p; p=(Node*)malloc(sizeof(Node));//申请新的结点 p->data=x;//结点数据域赋值 p->next=L->next;//将结点插入到表头L-->|2|-->|1|-->NULL L->next=p; } returnL; } 尾插入法创建单链表

如图所示为尾插入法的创建过程。

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

栏目热文

在单链表中查找值为x的节点(单链表指针怎么指向上一节点)

在单链表中查找值为x的节点(单链表指针怎么指向上一节点)

通过编码实现日常关于链表可能会遇到到编程题1 两个链表是各自自增的,要求合拼之后的链表满足单调不递减/** * 两个递...

2022-11-04 00:44:00查看全文 >>

大学教授可以开公司吗(国家允许院士开办公司吗)

大学教授可以开公司吗(国家允许院士开办公司吗)

新加坡南洋理工大学全职教授、物理学领域全球前1%高被引科学家、担任过多场国际重要学术会议的主席、领导的课题组实现了世界上...

2022-11-04 00:26:47查看全文 >>

老谭搞机靠谱吗(现在的搞机视频)

老谭搞机靠谱吗(现在的搞机视频)

“环线是不是降速了,好慢。”“环线现在成了观光线路了迈(吗),感觉速度还不如我骑自行车快……”这几天,不少乘坐轨道交通环...

2022-11-04 00:25:37查看全文 >>

机贩子靠谱吗(手机贩子太可怕了)

机贩子靠谱吗(手机贩子太可怕了)

其实很早的时候数码盖饭就给大家科普了“BS资源机”,他有很多名字:资源机、富士康机、1978机、BS机,这类机器是苹果全...

2022-11-04 00:29:11查看全文 >>

华强北告诉你搞靓机靠不靠谱(二手手机哪里买最靠谱)

华强北告诉你搞靓机靠不靠谱(二手手机哪里买最靠谱)

内容来自:酷安@最北的北方啥是“背包客”?背包客,顾名思义,背包,他们就是华强北的代购,因为各位小伙伴并不能都来深圳买手...

2022-11-04 00:42:44查看全文 >>

在单链表中查找一个节点如何操作(查找链表是否存在一个节点)

在单链表中查找一个节点如何操作(查找链表是否存在一个节点)

单链表的定义链表是一种物理存储结构上非连续,非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针连接次序实现的。线性表...

2022-11-04 00:24:09查看全文 >>

单链表查找结点流程图(在单链表中查找一个节点如何操作)

单链表查找结点流程图(在单链表中查找一个节点如何操作)

单链表单链表的创建分为头插入法和尾插入法两种,两者并无本质上的不同,都是利用指针指向下一个结点元素的方式进行逐个创建,只...

2022-11-04 00:31:59查看全文 >>

单链表找中间的节点(在链表中查找节点)

单链表找中间的节点(在链表中查找节点)

想法:返回单链表的中间节点:采用双指针方法,慢指针走一步,快指针走2步,当快指针走到头,那么慢指针所在的位置就是链表的中...

2022-11-04 00:29:10查看全文 >>

单链表各个节点的关系(单链表的中间节点)

单链表各个节点的关系(单链表的中间节点)

一:相关概念(1)什么是链表官方定义:链表是一种物理存储结构上非连续的存储结构,数据元素的逻辑顺序是通过链表中的指针链接...

2022-11-04 00:27:00查看全文 >>

怎么找单链表节点(如何确认链表节点)

怎么找单链表节点(如何确认链表节点)

福哥答案2020-11-03:1.输入链表头节点,奇数长度返回中点,偶数长度返回上中点 。1.1.快慢指针。1.2.单指...

2022-11-04 00:41:37查看全文 >>

文档排行