数据结构知识点补充

news2024/9/22 23:22:32

 (67条消息) c语言怎么return ok,C语言中的 return与exit_哈哈哈可以的博客-CSDN博客

 假如把i++或++i放入到for循环的函数体中,若没有变量或函数来接收其返回值,那么它们的作用效果也是相同的
(67条消息) C语言的for循环中i++和++i的关系_肥嘟嘟的左卫门的博客-CSDN博客_c语言for循环i++和++i

关于ralloc函数的用法

(67条消息) 【C语言】realloc函数_SouLinya的博客-CSDN博客_realloc

在C语言中,0表示假,非0(不只包括1,还包括2,3,5等只要是非零数字即可)表示真

关于i++和++i

CPU眼里的:i++ 和 ++i_哔哩哔哩_bilibili

i++(后加)的返回值是右值型的,右值的临时变量只能给别人赋值,而且程序员还看不见

所以后加需要分两步走,那为什么前加能一步到位呢,因为前加是左值的,左值意味着可以被直接赋值

 一般通常来讲,二者是没有任何区别的,但是构建类对象的时候,后加的劣势就会被无限放大

所以常见类的时候,首选前加运算,大大增快了运算速度

关于return ERROR和return OK 作用的问题-CSDN社区

堆和栈的区别是什么?_哔哩哔哩_bilibili

不同函数之间的栈数据不能共享

多线程中每启用一个函数其实就会调用一个函数,同样也会有各自的栈,线程之间的栈数据也是不能够共享的

而堆是一个进程,只要在这个进程内,所有的线程都可以访问堆上的数据 

那什么时候使用堆什么时候使用栈呢?

当数据的size不确定的时候,肯定是用堆不用栈,而当确定的时候,由于效率的问题,一定会使用栈而不用堆,因为他会极大的提高你的运行速度

此外,想使用非常庞大的内存的话,一般不用栈而用堆,用完之后立即释放掉

关于status

(72条消息) 数据结构Status_proveyourself的博客-CSDN博客_status在数据结构中什么意思

注意

int *p;

*(p--)和  *(p-1)之间不同,指针自减改变的是指针的位置,而指针减一指针的位置不变,而是取指针减一所在位置赋值

如何从键盘上依次输入一段文字,并以回车结束,读取并输出

 

 

 

 

 

 在新元素入队的时候,我们要检查rear指针(尾指针)的后一个元素是否与头指针相等,如果相等,则说明此时队已满。

入队操作

 

 判断队满队空的条件

计算队列元素的个数

以上都是以牺牲一片存储空间为代价的

法二判断:

 

增加一个size来判断,插入成功则size++,删除成功则size--

当size==Maxsize时,则说明队列已满

如图

 

虽然队头指针和队尾指针都指向了同一个位置,但是由于我们设置了新的变量size,我们可以通过size来判断队空还是队满

法三:

 

设置一个tag,当tag=1时,表示进行了以此删除操作,当变量的值为1时,表示进行了一次插入操作

只有删除操作才有可能导致队列变空,只有插入操作才有可能导致队列变满,

如图

 

当在这个位置时,不管tag的时多少,我们都要插入一个元素,此时tag的值为1,

此时,rear与front重合,所以此时就是队满条件

同理

 

当然,以上的这些方法,都是基于队尾指针指向队尾元素的下一位,这样的一个前提条件进行的

那当队尾指针是指向队尾元素的情况时

所以为了操作方便,在这种情况时,

 

 

 先让 rear = n - 1;此时

 

 

 

由于静态数组的容量都是有限的

 模运算和取余运算,都是为了重复的利用静态数组中的存储空间

需要注意的是,队尾指针是指向了队尾元素的后一个位置,还是就是指向了队尾元素

 

链式存储实现的队列被称为链队列

 

 

带头结点的队列,要判空,则需要根据头尾结点是否指向同一个位置来判断,当然也可以通过头结点的next指针是否指向NULL来判断队列是否为空 

 

 当不带头结点时

rear和front都是指向NULL的,所以插入新元素之后需要改一下

 

 

关于括号匹配的问题

 

 

 

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

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

相关文章

1226:装箱问题 (贪心)

【题目描述】 一个工厂制造的产品形状都是长方体,它们的高度都是h,长和宽都相等,一共有六个型号,他们的长宽分别为11,22,33,44,55,66。这些产品通常使用一个66h的长方体包裹包装然后邮寄给客户。因为邮费很贵,所以工厂…

爬虫工具-BeautifulSoup

BeautifulSoup: 1. 是一个高效的网页解析库,可以从HTML或者XML文件中提取数据 2. 支持不同的解析器,可以对HTML、XML等进行解析 3. 是一个敏感又方便的网页解析库,处理高效,支持多种解析器 4. 利用它在不编写正则表达式…

Unreal 和 Unity 3D 各有什么特点?如何选择?

一、两个引擎简述 Unreal Engine VS Unity Unity是实时3D互动内容创作和运营平台。包括游戏开发、美术、建筑、汽车设计、影视在内的所有创作者,借助Unity将创意变成现实。Unity平台提供一整套完善的软件解决方案,可用于创作、运营和变现任何实时互动的…

【设计模式】软件设计原则

1. 软件设计原则: 为了提高系统软件的可维护性、可复用性、可扩展性和灵活性 1.1 开闭原则: 对扩展开放,对修改关闭 (热插拔) 实现方式: 通过定义接口和实现类的方式实现开闭原则,我们再进行…

ASEMI代理艾赛斯IXTY02N50D-TRL车规级MOSFET

编辑-Z 艾赛斯车规级MOS管IXTY02N50D-TRL参数: 型号:IXTY02N50D-TRL 漏极-源极电压(VDS):500V 连续漏电流(ID):200mA 功耗(PD):25W 工作结温…

如何运营推特营销主账号

在推特上做产品推广,Twitter群(发)推王建议:一般需要两类账号。 主账号:也就是官方号,用来聚集粉丝,日常产品信息、新闻资讯发布的; 批量推广号:也叫小号或者广告号&am…

oracle数据库定义语言—DDL

文章目录1、数据定义语言2 创建表2.2 oracle 数据库中的表2.2.1 常见的数据字典表2.3 用查询创建表2.3.1 示例3 ALTER TABLE 语句3.1 添加一个新的列3.2 修改数据类型3.3 修改默认值3.4 修改列名3.5 删除一个列4、修改名称5、截断表6 、删除表(删除表以及表结构&…

《垃圾回收算法手册 自动内存管理的艺术》——引用计数与垃圾回收器的比较(笔记)

文章目录五、引用计数5.1 引用计数算法的优缺点5.2 提升效率5.3 延迟引用计数5.4 合并引用计数5.5 环状引用计数**步骤**5.6受限域引用计数六、垃圾回收器的比较6.1 吞吐量6.2 停顿时间6.3 内存空间6.4 回收器的实现6.5 自适应系统6.6 统一垃圾回收理论6.6.1 垃圾回收的抽象6.6…

神经网络在故障诊断中的应用

人工神经网络是近年来发展迅速,广泛地应用于各个领域,包括航天,自动控制,金融,电子,制造,医药等多个行业,已经有许多成功的先例,并展示了更为广阔的应用前景。基于神经网…

【区块链 | 智能合约】Ethereum源代码(8)- Ethereum服务和以太坊P2P协议发送广播源码分析

在“【区块链 | 智能合约】Ethereum源代码(2)- go-ethereum 客户端入口代码和Node分析”一文中,我们提到Ethereum作为一个service,被Node 注册进去。Node start的时候会启动其注册的所有服务,Ethereum service也是一样。 一、ethereum service的初始化和启动 func geth(c…

【MySQL数据库笔记 - 进阶篇】(二)索引

✍个人博客:https://blog.csdn.net/Newin2020?spm1011.2415.3001.5343 📚专栏地址:暂定 📝视频地址:黑马程序员 MySQL数据库入门到精通 📣专栏定位:这个专栏我将会整理 B 站黑马程序员的 MySQL…

day064:File类与I/O流、绝对路径与相对路径、File类的成员方法

目录 一、什么是File类、IO流 1.File类 2.I/O流 3.File类的构造方法 二、绝对路径与相对路径 三、File类的成员方法 1.File类的创建功能 (1)createNewFile() 创建空的文件 (2)mkdir() 创建单级文…

CY5.5(Cyanine5.5) azide, 10 mM/DMSO,花菁染料Cy5.5标记叠氮

产品名称:花菁染料Cy5.5标记叠氮 英文名称:CY5.5(Cyanine5.5) azide 该染料具有远红外/近红外发射,可用于NIR活体成像。Cyanine5.5可以取代Cy5.5、Alexa Fluor 680和DyLight 680。 CAS:2183440-52-8 分子式:C43H49ClN6O 分子量:701.36 …

简单工厂、工厂方法、抽象工厂、抽象工厂加简单工厂

简单工厂模式:简单工模式时类的创建模式,又叫做静态工厂方法(static Factory Method)。简单工厂模式是一个工厂对象决定创建出哪一种产品类的实例。它存在的目的很简单:定义一个创建对象的接口。简单工厂模式的最大优点…

Spring Boot之容器功能

目录 一.Spring 注入组件的注解 二.Configuration 1.代码演示 1.1JavaBean--》Monster.java 1.2配置类 1.3执行代码 2.Configuration 注意事项和细节 三.Import 1.创建两个JavaBean类 2.注入类 3.测试注解的使用 四.Conditional 1.Conditional 介绍 2.应用实例 …

攻防世界 看雪看雪看雪

看雪看雪看雪 题目附件里面给了张图 尝试文件拆解 无果 尝试放入winhex查找信息 无果 尝试放入stegsolve查找信息 无果 题目说雪 刚好有一种snow隐写的方法 但好像跟图片没有什么关系 后来发现存在ntfs流隐写 你解压之后也可以看到 这里我们使用7zip打开附件的压缩包…

【长难句分析精讲】同位语从句

分析技巧 形式: 抽象名词 that / whether形式: 具体名词 同位语(名词短语)如:成都,四川省会 练习一 一划二从三主 这里 and 不是关键词 苹果掉到地上而不是掉到树上这个事实,回答了他一直都…

【Jmeter基础篇】05:Linux服务器上部署并运行Jmeter脚本

配置之前请务必已安装JDK并配置好JDK的环境变量。 1. 上传压缩包到Linux服务器 使用FTP即可(最好是新建一个/usr/Application/Jmeter的文件夹,放进去。也可以使用自己喜欢的路径) # -p的作用是防止当上层文件夹不存在时报错。想体验的话可以…

Flink的六种物理分区策略

文章目录物理分区(Physical Partitioning)🍕1.随机分区(shuffle)🍔2.轮询分区(Round-Robin)🍟3. 重缩放分区(rescale)🌭4.广播&#x…

深度学习入门(三十八)计算性能——多GPU训练

深度学习入门(三十八)计算性能——多GPU训练前言计算性能——多GPU训练课件多GPU并行数据并行VS模型并行数据并行总结教材1 问题拆分2 数据并行性3 简单网络4 数据同步5 数据分发6 训练7 小结多GPU的简洁实现1简单网络2 网络初始化3 训练4 小结前言 核心…