错题本之<数据结构>

  1. 已知指针 p 指向单向不循环链表中的某一个节点,且不知道头结点。
    问:如何删除 p 指向的节点?

答:
如果 p 指向的不是最后一个节点
定义一个指针 q 保存 p->next; 然后将 q 的数据域和指针域都覆盖到 p 指向的节点中
最后释放 q 指向的节点即可。
q = p->next;
p->data = q->data;
p->next = q->next;
free(q);
q = NULL;
如果 p 指向的是最后一个节点了,就只能free(p)了,且没法修改倒数第二节点的指针域了

  1. 问:如何通过一趟遍历找到单向不循环链表的中点?

答:可以通过 快慢指针 实现
定义两个指针 p q 都指向链表开头
然后开始循环, p每次走2步,q每次走1步
当 p 走到结尾时,q 指向的就是链表的中点

//如果是代码实现 要注意 得保证 p->next 不是NULL 才能取 p->next->next
while(NULL != p || NULL != p->next){
p = p->next->next;
q = q->next;
}

  1. 顺序表(数组)和链表有什么区别?

答: 链表增删容易,O(n)查找难
顺序表增删难,O(1)查找容易;
顺序表需要提前确定长度,扩展空间难度较大
链表用多大空间就申请几个空间,扩建难度低

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

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

相关文章

java欢迪迈手机商城设计与实现源码(springboot+vue+mysql)

风定落花生,歌声逐流水,大家好我是风歌,混迹在java圈的辛苦码农。今天要和大家聊的是一款基于springboot的欢迪迈手机商城设计与实现。项目源码以及部署相关请联系风歌,文末附上联系信息 。 项目简介: 欢迪迈手机商城…

[emailprotected](10)HOC高阶组件和横切关注点

目录 1,什么是HOC2,什么是横切关注点2.1,简单理解2.2,常见解决方式 3,HOC 举例3.1,全局功能3.2,小范围使用 4,HOC 使用注意点4.1,不要在 render 中使用4.2,不…

spring状态机实战

一、什么是状态机 状态机是有限状态自动机的简称,是现实事物运行规则抽象而成的一个数学模型,是一种概念性机器,它能采取某种操作来响应一个外部事件。这种操作不仅能取决于接收到的事件,还能取决于各个事件的相对发生顺序。状态…

不同网段的通信过程

这里的AA和HH指的是mac地址,上面画的是路由器 底下的这个pc1,或者其他的连接在这里的pc,他们的默认网关就是路由器的这个192.168.1.1/24这个接口 来看看通信的过程 1、先判断(和之前一样) 2、去查默认网关&#xf…

基于SpringBoot和Hutool工具包实现的验证码案例

目录 验证码案例 1. 需求 2. 准备工作 3. 约定前后端交互接口 需求分析 接口定义 4. Hutool 工具介绍 5. 实现验证码 后端代码 前端代码 6. 运行测试 验证码案例 随着安全性的要求越来越高,目前项目中很多都会使用验证码,只要涉及到登录&…

MySQL Mysqldump备份时的错误提示

MySQL Mysqldump备份时的错误提示 执行mysqldump备份数据库时,命令如下: mysqldump -h8.137.112.148 -udbusername -pdbpassword dbname > /opt/backup_mysql/bkdata/$(date "%Y%m%d%H%M%S")出现以下错误: mysqldump: Could…

Liunx系统中修改文件的创建时间以及访问时间

在Linux系统中,可以使用touch命令来修改文件的时间戳。以下是一些常用的touch命令选项: (其实在MacOS中也适用) 修改访问时间(Access Time)和修改时间(Modification Time)&#xf…

Celery的Web监控工具Flower

1 简介Flower Flower官网 Flower是一个WEB端的监控工具,可以监控Celery的消费者。但是WEB端的监控对于监控系统来说,有个屁用,有用的是监控告警。还好Flower不是全部是垃圾,它提供的Prometheus的监控端点。然而。。。。。如何保证…

CorelCAD v2022.5 解锁版 安装教程(2D制图 3D设计和打印的简化软件)

前言 CorelCAD,加拿大Corel公司开发的一款适用于2D制图、3D设计和打印的简化版CAD软件。它是款专业的2D制图和3D设计软件,拥有行业标准文件兼容性,支持 .DWG、.STL、.PDF、 .CDR*等文件格式,轻松实现协作和项目共享,利…

Linux中apt是什么?apt与apt-get有什么区别?

相信大家刚安装完Ubuntu系统后除了最基本的Linux操作,接触较多的命令就是apt了,那么这家伙到底是个什么呢? apt是一个在Ubuntu和Debian等Linux发行版中用于包管理的命令行工具。它是Advanced Package Tool(高级软件包工具&#xf…

学 Go 具体能干什么?

学习 Go (Golang) 后,你可以从事许多不同的工作和项目,Go 语言以其高性能、并发处理和简洁的语法而闻名,特别适合以下几个领域: 1. 后端开发 Go 在后端开发中非常流行,特别适合构建高性能的 Web 服务和 API。 Web 框…

初识Spring Cache:如何简化你的缓存处理?

文章目录 1、Spring Cache介绍2、 常用注解3、 使用案例 1、Spring Cache介绍 Spring Cache 是一个框架,实现了基于注解的缓存功能,只需要简单地加一个注解,就能实现缓存功能。 Spring Cache 提供了一层抽象,底层可以切换不同的…

【机器学习】基于核的机器学习算法(Kernel-based Algorithms):原理,应用与优化

👀传送门👀 文章引言🔍🍀核函数的概念🚀基于核的算法原理💖基于核的算法应用🐟支持向量机(SVM)📕核主成分分析(KPCA) 🍀未…

头歌使用GDB调试程序nav第1关:基本实验工具 GDB 的使用

编程要求 根据提示,在右侧编辑器补充代码,完成对 main.c 程序的编译,并在代码第 4 行和第 6 行设置断点。在GDB中运行程序,每次遇到断点时,对变量 a 进行打印输出。 (请不要对 main.c 进行修改) main.c #in…

红队攻防渗透技术实战流程:云安全之云原生安全:内核漏洞和版本漏洞

红队云攻防实战 1. 云原生安全 -Docker安全-容器逃逸-版本漏洞1.1 容器逃逸-版本漏洞-runC容器逃逸1.2 实战案例-版本漏洞-runC容器逃逸1.3 容器逃逸-版本漏洞-containerd逃逸1.4 实战案例-版本漏洞-containerd逃逸1.5 Docker安全-容器逃逸-CDK自动化1.6 Docker安全-容器逃逸-c…

【算法训练 day39 单调递增的数字】

目录 一、二分查找-LeetCode 704思路实现代码1.左闭右闭 问题总结 一、二分查找-LeetCode 704 Leecode链接: leetcode 704 文章链接: 代码随想录 视频链接: B站 当且仅当每个相邻位数上的数字 x 和 y 满足 x < y 时&#xff0c;我们称这个整数是单调递增的。 给定一个整数…

大数据信用报告查询有哪些作用?哪个平台更好?

大数据信用是基于大数据技术&#xff0c;通过大数据系统生成的大数据信用报告&#xff0c;报告收集了查询人在非银环境下的申贷数据以及履约行为和信用风险的综合性报告。很多人都会问&#xff0c;大数据信用报告查询有哪些作用?哪个查询平台更好的疑问&#xff0c;下文就详细…

python中神奇的装饰器

需求&#xff1a;实现一个可以统计代码的运行时间-CSDN博客 装饰器就是我们常见的在类或函数上的装饰器&#xff0c;比如unittest里ddt&#xff0c;它可是一种好用的工具。如果你同事写了一坨代码&#xff0c;你想给这一坨代码扩展新的功能&#xff0c;这个时候就用到了装饰器…

图像处理神经网络数据预处理步骤的详细解释和分析

1. 尺寸调整&#xff08;Resizing&#xff09; 目的&#xff1a;神经网络通常需要固定尺寸的输入图像。通过统一图像尺寸&#xff0c;可以确保输入的一致性&#xff0c;使得网络能够正常处理。 方法&#xff1a;将所有输入图像调整为特定的尺寸&#xff08;例如224x224像素&a…

C++STL---string知识汇总

前言 我们现在开始CSTL的学习&#xff0c;从这时开始我们就要锻炼自己查看英文文档的能力&#xff0c;每种数据结构都有上百个接口函数&#xff0c;我们把他们全部记下来是不可能的&#xff0c;所以我们只记最常见的20几个接口&#xff0c;其他的大概熟悉有什么功能&#xff0…