单链表(8)

news2024/11/25 5:52:42

单链表的特点

可以发现,在单链表的for循环里,初始化就总结为这两种情况

上图中

用第一条(要改变链表的结构,增加,减少结点个数等)的有:尾插,插入,删除pos位置值,

获取前驱地址(目的为了删除,在插入和删除操作里面,找pos位置时,出循环后,p指向的都是pos位置的前驱)。

用第二条(不改变链表原本的结构)的有:获取结点个数,查找key值search,输出show

综上所述:在进行要修改表的结构或是依赖于前驱的操作(插入,删除)时,用第一条p=plist

在不改变表的的结构的前提下的操作(打印,查找),用第二条p=plist->next(这是打印的第一个数据结点)

总结:

也可以这样记:plist就是前驱

单链表的特点

头插,头删不用for循环遍历找位置

尾插,尾删用for循环找尾巴位置

单链表的重点——就地逆置算法(也就是逆序输出)

如果用找尾巴的方法,先输出最后一个数据,

然后再循环遍历找尾巴的前驱,然后输出

接着再循环遍历找刚刚输出的数据的前驱

这样时间复杂度就是O(n^2),太麻烦了

思路:头插的时候数据的输出就是逆序的,所以利用头插来逆置

单链表原本是上图顺序指向的,现在让每一个的方向都向后转,变成图中画的那条线的方向,这样就完成逆置了——总共需要3个指针——按先后顺序,1置空2反转3保存。

p:指向第一个点

q:指向p的next(反转)

r:指向未处理的点

然后依次将p,q,r统一往后挪

移动时顺序,先移p,再移q,再移r(顺序乱了链会断掉)

p走到q的位置上,q走到r的位置上,r走到q的next的位置上

然后再向后转一次(q->next=p)

然后循环着往后走

反转

向后走

反转

此时已经反转完了,再向后走,发现q为空了(q==null),就是循环结束条件

这个方法一最重要的就是顺序!

测试用例时如果链表中只有1个数据点或2个数据点的情况

或者是个空表,逆置完不能崩溃

那么第一步先让第一个数据结点的next变为空,但不能直接一上来就令它为空,要这样的话链表就可能断掉了,100地址没标记保存就被覆盖掉,那么数据2结点往后的一串就找不到了,程序就会崩溃

所以在100被NULL覆盖之前,要先保存100

定义一个p指向数据1,定义一个q指向数据2,现在让q的next指向p,就相当于把数据1和2之间的箭头反向了——向后转

但此时仍然是300未保存就被覆盖,后面的数据找不到了

所以现在需要第3个指针r,来保存后面还未被处理的数据(存300)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1202718.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

vue脚手架初始化项目搭建后配置路由【小白易学】

首先这里你已经创建好项目了,这是跑起来的效果 首先第一步,需要下载路由router npm install vue-router4下载好了之后找到main.js页面,加入router import { createApp } from vue; import App from ./App.vue; import router from ./routercreateApp(A…

做一个springboot登陆注册功能

目录 一、环境搭建 1、数据库 2、引入依赖 3、配置信息 4、创建包结构和数据库实体类 二、接口开发-注册接口 前提准备 响应数据 需求分析 全局异常处理 代码编写 测试 三、接口开发-登录接口 前提准备 响应数据 需求分析 代码编写 测试 拦截器 测试 一、环…

IP地址如何实现定位功能?

网络犯罪、保护网络安全的重要手段。近日,一则新闻引起了广大网友的关注:IP也能实现定位功能,这是如何做到的呢?本文将对此进行深入解析。 首先,我们需要了解什么是IP地址定位。IP地址定位是通过IP地址确定网络用户所在…

面试被问答3-5年职业规划,该怎么回答

面试官问这些问题的目的是什么?他想得到什么满意的答案。只要清楚这些,就不难回答这个问题。 1、你有没有上进心?公司是否值得培养呢? 你需要对专业能力充满向往,希望自己在3~5年内,把专业能力做好&#…

字符串和内存函数(1)

文章目录 目录1. 前言2. 函数介绍2.1 strlen2.2 strcpy2.3 strcat2.4 strcmp2.5 strncpy2.6 strncat2.7 strncmp2.8 strstr2.9 strtok2.10 strerror2.11 字符分类函数2.12 字符转换函数 目录 求字符串长度函数长度不受限制的字符串函数长度受限制的字符串函数字符串查找函数错…

TikTok影响力经济:解锁社交媒体的商业机遇

社交媒体平台的崛起改变了我们与世界互动的方式,而TikTok作为其中的一员,已经成为全球范围内的现象。这个短视频应用不仅让用户在几秒钟内分享创意和娱乐,还为企业和创作者提供了巨大的商业机会。本文将深入探讨TikTok的影响力经济&#xff0…

linux grub2 不引导修复 grub2-install:error:/usr/lib/grub/x86_64-efi/modinfo.sh

系统部署在物理机上,开机后一直pxe不进系统,怀疑GRUB丢失。 查看bios 里 采用uefi 启动方式, 无硬盘系统引导选项, 且BMC设置为硬盘永久启动也无效。 挂载光驱ISO进入救援模式,sda为系统盘,重装grub报错 grub2-inst…

如何用自然语言 5 分钟构建个人知识库应用?我的 GPTs builder 尝试

开发者的想象力闸门一旦打开,迎接我们的必然是目不暇接的 AI 应用浪潮冲击。 兴奋 早晨,我突然发现 ChatGPT 最新的 Create GPTs 功能可以用了。 这太让我意外了,没想到这么快。根据页面上的提示,我一直以为还得等上一周左右。于是…

腾讯待办为什么停止运营?ics文件如何导入日程APP继续使用?

有不少网友表示自己想要记录待办事项、设置待办提醒的时候,会直接使用微信中的腾讯待办小程序来记录。但是最近这段时间在使用这款小程序设置待办提醒的时候,看到了“业务关停通知”的弹窗,大意就是说,腾讯待办将于2023年12月20日…

CoRL 2023 获奖论文公布,manipulation、强化学习等主题成热门

今年大模型及具身智能领域有了非常多的突破性进展,作为机器人学与机器学习交叉领域的全球顶级学术会议之一,CoRL也得到了更多的关注。 CoRL 是面向机器人学习的顶会,涵盖机器人学、机器学习和控制等多个主题,包括理论与应用。今年…

CCF ChinaSoft 2023 论坛巡礼 | 生成式AI与软件自动化论坛

2023年CCF中国软件大会(CCF ChinaSoft 2023)由CCF主办,CCF系统软件专委会、形式化方法专委会、软件工程专委会以及复旦大学联合承办,将于2023年12月1-3日在上海国际会议中心举行。 本次大会主题是“智能化软件创新推动数字经济与社…

说说react中引入css的方式有哪几种?区别?

一、是什么 组件式开发选择合适的css解决方案尤为重要 通常会遵循以下规则: 可以编写局部css,不会随意污染其他组件内的原生;可以编写动态的css,可以获取当前组件的一些状态,根据状态的变化生成不同的css样式;支持所有的css特性:伪类、动画、媒体查询等;编写起来简洁…

牛客网:OR36 链表的回文结构

一、题目 函数原型: bool chkPalindrome(ListNode* A) 二、思路 判断一个单链表是否为回文结构,由于单链表不能倒序遍历,所以需要找到单链表的后半段,并将其逆置,再与前半段链表进行比较。 如何找到单链表的后半段呢&a…

3D造型渲染软件DAZ Studio mac中文版介绍

DAZ Studio mac是一款3D造型和渲染软件,由 Daz 3D 公司开发。它允许用户创建、编辑、动画化并渲染精美的数字图像与动画。DAZ Studio 还提供了一个虚拟的3D艺术家工作室环境,让用户可以轻松地设置场景、布置角色和应用材质。 用户可以通过 DAZ Studio 中…

麒麟KYLINOS中使用Ghost镜像文件还原系统

原文链接:麒麟KYLINOS中使用Ghost镜像文件还原系统 hello,大家好啊,今天给大家带来麒麟KYLINOS备份还原的第三篇文章,使用Ghost镜像文件还原系统,将之前做好的Ghost镜像文件拷贝到u盘里,然后在另一台终端上…

如何在群晖虚拟机快速部署线上web网站并实现公网访问

文章目录 前言1. 安装网页运行环境1.1 安装php1.2 安装webstation 2. 下载网页源码文件2.1 访问网站地址并下载压缩包2.2 解压并上传至群辉NAS 3. 配置webstation3.1 配置网页服务3.2 配置网络门户 4. 局域网访问静态网页配置成功5. 使用cpolar发布静态网页,实现公网…

2023年【汽车驾驶员(高级)】证考试及汽车驾驶员(高级)实操考试视频

题库来源:安全生产模拟考试一点通公众号小程序 汽车驾驶员(高级)证考试考前必练!安全生产模拟考试一点通每个月更新汽车驾驶员(高级)实操考试视频题目及答案!多做几遍,其实通过汽车…

ASAM OpenDRIVE V1.7协议超详解(一)

文章目录 前言一、仿真场景的构成二、openDRIVE框架三、g_additionalData四、openDRIVE-header五、openDRIVE-road1、Road总拓扑结构2、Road-link介绍1)link的拓扑结构2)link链接示例3)link前继后继4)道路link规则 3、road-type介…

从0到0.01入门React | 005.精选 React 面试题

🤍 前端开发工程师(主业)、技术博主(副业)、已过CET6 🍨 阿珊和她的猫_CSDN个人主页 🕠 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 🍚 蓝桥云课签约作者、已在蓝桥云课上架的前后端实战课程《Vue.js 和 Egg.js 开发企业级健康管理项目》、《带你从入…

理事长走进统信软件,深度探讨社区发展规划 | 理事长走进系列

10 月 19 日,龙蜥社区“理事长走进理事单位系列交流会”活动第二期开展,本期走进龙蜥社区副理事长单位——统信软件,会议共出席 17 人。会上回顾了统信软件过去在龙蜥社区的贡献和投入,并共同对未来的合作计划和诉求进行了深度讨论…