当前位置:首页 > 经验 >

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

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

其代码如下:

//删除元素 intdelete_list(list*head){ if(head==NULL){ printf("链表为空!\n"); return0; } //建立临时结点存储头结点信息(目的为了找到退出点) //如果不这么建立的化需要使用一个数据进行计数标记,计数达到链表长度时自动退出 //循环链表当找到最后一个元素的时候会自动指向头元素,这是我们不想让他发生的 list*temp=head; list*ptr=head->next; intdel; printf("请输入你要删除的元素:"); scanf("%d",&del); while(ptr!=head){ if(ptr->data==del){ if(ptr->next==head){ temp->next=head; free(ptr); return1; } temp->next=ptr->next;//核心删除操作代码 free(ptr); //printf("元素删除成功!\n"); return1; } temp=temp->next; ptr=ptr->next; } printf("没有找到要删除的元素\n"); return0; } 循环单链表的遍历

与普通的单链表和双向链表的遍历不同,循环链表需要进行结点的特殊判断。

先找到尾节点的位置,由于尾节点的next指针是指向头结点的,所以不能使用链表本身是否为空(NULL)的方法进行简单的循环判断,我们需要通过判断结点的next指针是否等于头结点的方式进行是否完成循环的判断。

此外还有一种计数的方法,即建立一个计数器count=0,每一次next指针指向下一个结点时计数器 1,当count数字与链表的节点数相同的时候即完成循环;

但是这样做会有一个问题,就是获取到链表的节点数同时,也需要完成一次遍历才可以达成目标。

其代码如下:

//遍历元素 intdisplay(list*head){ if(head!=NULL){ list*p=head; //遍历头节点到,最后一个数据 while(p->next!=head){ printf("%d",p->next->data); p=p->next; } printf("\n");//换行 //把最后一个节点赋新的节点过去 return1; }else{ printf("头结点为空!\n"); return0; } } 进阶概念——双向循环链表

循环单链表也有一个孪生兄弟——双向循环链表,其设计思路与单链表和双向链表的设计思路一样,就是在原有的双向链表的基础上,将尾部结点和头部结点进行互相连接。交给大家了。

关于链表的总结

在顺序表中做插入删除操作时,平均移动大约表中一半的元素,因此对n较大的顺序表效率低。并且需要预先分配足够大的存储空间,而链表恰恰是其中运用的精华。

基于存储,运算,环境这几方面考虑,可以让我们更好的在项目中使用链表。

今天链表基础就讲到这里,下一期,我们再见!

栏目热文

在单链表中查找值为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查看全文 >>

文档排行