自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(248)
  • 收藏
  • 关注

原创 零基础入门学用Arduino 第五部分

封装、继承、多态。(2)C++认为万事万物都皆为对象,对象上有其属性和行为。例如:①舵机可以作为对象,属性有控制引脚在Arduino上的编号,行为有转动输出轴至某一角度等。②步进电机也可以作为对象,属性步进模式、输出轴转动一周所需步数、控制引脚在Arduino上的编号等,行为有转动、静止等。(1)类的定义可以分为说明部分和实现部分两部分,其中说明部分说明类中包含的数据成员和成员函数,实现部分是对成员函数的定义。

2024-06-19 18:15:18 853

原创 零基础入门学用Arduino 第四部分(三)

(1)Arduino AFMotor电机扩展板专门与Arduino开发板配合使用,如下图所示,它是直接插在Arduino开发板上的。(2)AFMOTOR电机扩展板主要功能特点:①最多可驱动4个模型直流电机。②最多可驱动2个28BYJ-48步进电机。③最多可驱动2个舵机(伺服电机)。④板载两块L293D芯片负责电机驱动的核心工作⑤可配合Arduino Uno/Mega开发板使用(这里主要针对Uno开发板进行介绍)。(3)Arduino AFMotor电机扩展板的各个端口如下所示。

2024-06-19 16:00:39 817

原创 零基础入门学用Arduino 第四部分(二)

1]假定电机的起始状态就如上面的内部结构示意图所示,逆时针方向转动,起始时是B相绕组的开关闭合,B相绕组导通,那么导通电流就会在正上和正下两个定子齿上产生磁性,这两个定子齿上的磁性就会对转子上的0和3号齿产生最强的吸引力,就会如图所示的那样,转子的0号齿在正上、3号齿在正下而处于平衡状态,此时转子的1号齿与右上的定子齿(也就是C相)的一个绕组呈现一个很小的夹角,2号齿与右边的定子齿(也就是D相)绕组呈现一个稍微大一点的夹角,很明显这个夹角是1号齿和C绕组夹角的2倍,同理,左侧的情况也是一样的。

2024-06-18 23:15:30 538

原创 零基础入门学用Arduino 第四部分(一)

(1)电机又称为电动机、马达,是一种通过电磁感应定律将电能转化成机械能,并可再使用机械能产生动能以驱动其它装置的电气设备。(2)使用Arduino控制的电机主要分为三类,分别是直流电机、步进电机及伺服电机,其中伺服电机在第二部分中有介绍,这里不再赘述。(3)电机根据工作电源种类分为直流电机(DC)、交流电机(AC)和交直流两用电机(Universal)三类,很显然,直流电机只能由直流电源供电,交流电机只能由交流电源供电,而交直流两用电机可使用直流或交流电源供电。

2024-06-18 23:05:30 1493

原创 零基础入门学用Arduino 第三部分(三)

(1)除了FastLED库提供的颜色参数外,程序员还可以自定义颜色,FastLED提供了两种自定义颜色的方法,分别是CRGB方法与CHSV方法:①CRGB方法就是将三原色(红色、绿色、蓝色)以不同比重(或者说数值)相加在一起得到其它颜色。定义方式:CRGB <颜色变量名>(<rValue>,<gValue>,<bValue>);//CRGB方法定义颜色//myRGBcolor(rValue,gValue,bValue)——创建RGB颜色变量//rValue: 红色数值 0 - 255。

2024-06-16 02:47:23 784

原创 零基础入门学用Arduino 第三部分(二)

⑦程序主循环部分:Arduino需不断读取当前开关状态,将其记录在变量buttonState中,并用一个全局变量lastButtonState记录上一次读取的开关状态,以此区分按键的四个状态——第一次按下、持续按住不放、松开及闲置,按键闲置时需要检测有没有外来的红外信号,有则将其接收并记录相关信息,按键第一次按下时则按照记录的信号信息进行信号发送,按键持续按住不放时,针对NEC协议应发送重复信号,按键松开时应重新打开红外接收。④发射红外信号:根据记录的信号类型和信号对应数值,调用相应的库函数进行信号发射。

2024-06-16 02:39:06 727

原创 零基础入门学用Arduino 第三部分(一)

视频链接:​​​​​​​​​​​​​​。

2024-06-14 15:21:09 971

原创 零基础入门学用Arduino 第二部分(二)

(需要注意的是,上下界指的是机械臂舵机能达到的不损坏机械臂时的最大/小角度,这个角度可以对四个舵机分别进行调试而得出,每个机械臂的舵机旋转上下界可能略有差异,但只要每个舵机都经过正确的初始化调整,差异应该是很小的)(1)在上例中,通过Arduino直接控制舵机旋转,会发现舵机摇臂旋转的速度非常快,然而现实中大多自动工作的机械臂都是缓慢转动的,如果每一个动作都是“一气呵成”,这将增加非常多不必要的麻烦与危险,为了让机械臂缓慢转动,可以。(2)连接完成后将下面的初始化调整程序下载到开发板中,然后进行人工调试。

2024-06-14 13:52:17 957

原创 零基础入门学用Arduino 第二部分(一)

(1)通过Servo库可以用Arduino控制舵机(伺服电机)。常见的Arduino舵机有两种,一种舵机轴可以旋转180度,还有一种舵机轴可以连续旋转,这种舵机的旋转速度是可以控制的。(2)Servo库允许大多数Arduino开发板(如Arduino Uno)同时控制12个舵机,对于Arduino Mega,可以用Servo库同时控制48个舵机。(3)请注意:使用Servo库可能会影响Arduino开发板的某些引脚的PWM功能。

2024-06-08 18:24:00 812

原创 零基础入门学用Arduino 第一部分(三)

②analogRead函数的返回值范围为0-1023(针对本项目而言),而LED灯的亮度参数取值范围为0-255,虽然二者取值范围不同,但是可以为它们构造一个等比映射的关系,如下图所示,这样,引脚A0的电压值就能与LED灯的亮度参数存在一个映射关系(或者说线性关系)。(2)将下面的程序下载到开发板中,首先LED会获得一个适中的亮度,持续按下按键1,LED的亮度会持续下降直至熄灭,持续按下按键2,LED的亮度会持续上升直至程序设定的最大值。

2024-06-08 14:03:06 1585

原创 零基础入门学用Arduino 第一部分(二)

④按下按键开关(不松开),此时按键导通,开发板的引脚2通过按键开关导通的电路与地相连,由于上拉电阻R1将5V的电压全部分走,所以引脚2处的电压为零,即处于一个低电平的状态,在程序中对应着数字0,程序通过digitalRead函数读取到此状态记录在变量buttonState中,接着通过串口将“0”传输到电脑上。对于共阳极数码管,如果想让其显示数字,首先要将其公共阳极置为高电平(否则永远不可能产生正向电流),对于各个LED的阴极,需要点亮哪个LED灯,就将哪个LED灯的阴极置为低电平。

2024-06-07 15:00:38 835

原创 零基础入门学用Arduino 第一部分(一)

(1)Arduino Uno R3官方板上的微控制器如下图红框所示,其上下(前后)有两排金属片引脚。(2)将外接元器件通过导线插入板子上下两排端口,上下两排端口和微控制器的引脚是相连的,上图所示的端口分为三组,分别为数字输入/输出端口、模拟输入端口和电源端口(输入和输出是相对开发板而言的)。(3)在数字输入/输出端口中有两个较为特殊的端口,这两个端口用于Arduino与电脑之间的数据传输,到目前为止,只要还有其它数字端口空闲,都不应该使用这两个端口。

2024-06-07 14:50:10 997

原创 模拟电路 第六章(信号产生电路)

忽略基本放大电路的输入阻抗对反馈网络的负载效应,放大电路的输入端(1端)外接一定频率、一定幅度的正弦波信号。为了进一步改善输出电压幅度的稳定问题,可以在放大电路的负反馈回路里采用非线性元件来自动调整反馈的强弱以维持输出电压的恒定。等于门限电压时输出电压的跳变方向决定于输入电压作用于同相输入端还是反相输入端,上面是以反相输入迟滞比较器为例进行介绍的。,经过基本放大电路和反馈网络所构成的环路传输后,在反馈网络的输出端(2端)得到反馈信号。的比值不同,就改变了占空比,设忽略了二极管的正向电阻,此时的振荡周期为。

2024-04-27 14:48:22 917

原创 模拟电路 第五章(运算放大器)

(2)运放的开环电压增益很高,若。的饱和极限值等于运放的电源电压。(如上右图绿色曲线所示)(如上右图绿色曲线所示)(2)根据虚短和虚断,有。

2024-04-27 14:06:30 554

原创 模拟电路 第四章(反馈放大电路)

如下中曲线2所示,与曲线1相比,在输出电压幅度相同的情况下,斜率(即增益)虽然变小了,但增益因输入信号的大小而改变的程度却大为减小,这说明。应当注意的是,负反馈减小非线性失真所指的是反馈环内的失真,如果输入波形本身就是失真的,这时即使引入负反馈也是无济于事的。从反馈环路中的任意一点开始,假设其瞬时极性为正,若沿反馈环路一周回到该点的瞬时极性为负,则为负反馈,否则为正反馈。(9)若信号源的内阻很大,则引入并联负反馈,反馈效果显著。(4)当负载改变时,若要求输出电压变化不大,带负载能力强,则引入电压负反馈。

2024-04-26 13:29:00 2133

原创 模拟电路 第三章(模拟集成电路)

下图所示的是电流源的输出特性,输出特性的电流在一定范围内是恒定的,其斜率的倒数为动态输出电阻。,可以获得高的放大倍数,但是静态工作点会相应地向饱和区移动,可见这时静态工作点的设置和放大倍数的增加是一对矛盾。(电流源内阻两端的电压为0,无电流通过),故交流通路如下图所示,电流源内阻不画入交流通路中。点的电位向相反的方向变化,一边增量为正,另一边增量为负,并且大小相等,可见负载电阻。,则因一管的电流增加,另一管的电流减小,在电路完全对称的条件下,的中点是交流地电位,所以在差分输入的半边等效电路中,负载电阻是。

2024-04-26 13:01:40 1264 3

原创 模拟电路 第二章(三极管及其放大电路)【下】

(3)小信号模型分析法的适用范围:放大电路的输入信号幅度较小,BJT工作在其V-T特性曲线的线性范围(即放大区)内。②在放大电路中,输出信号应该成比例地放大输入信号(即线性放大),如果两者不成比例,则输出信号不能反映输入信号的情况,放大电路产生非线性失真。②缺点:在BJT与放大电路的小信号等效电路中,电压、电流等电量及BJT的H参数均是针对变化量(交流量)而言的,不能用来分析计算静态工作点。①在计算各级的电压增益时,将其后级的输入电阻作为它的负载电阻(末级为负载电阻),不必考虑前级输出电阻对该级的影响。

2024-04-24 22:09:51 1488

原创 模拟电路 第二章(三极管及其放大电路)【上】

(1)半导体三极管(Bipolar Junction Transistor: BJT)是指通过一定的工艺,将两个PN结结合在一起的器件。(2)两种类型BJT的结构示意图如下所示。BJT结构上的特点是基区很薄、掺杂浓度很低,发射区比集电区的掺杂浓度高,集电区的面积比发射区大。

2024-04-24 21:42:17 1506

原创 模拟电路 第一章(二极管及其电路)【下】

2]对下图所示电路图用理想模型分析,在交流电的前1/2周期中,电源电压瞬时值为正,此时D2和D4导通、D1和D3截止,在交流电的后1/2周期中,电源电压瞬时值为负,此时D2和D4截止、D1和D3导通,由此在整个交流电周期中电阻两端都有电压,且方向均为正。若施加的是正向电压,但小于二极管的死区电压,那么二极管仍处于截止状态;在使用上述判断方法的过程中,若出现两个及以上的二极管承受大小不等的正向电压时,应判定承受正向电压较大者优先导通,其两端电压为正向导通电压,然后再用上述方法判断其它二极管的工作状态。

2024-04-23 15:18:06 928

原创 模拟电路 第一章(二极管及其电路)【上】

①当PN结处于正向偏置时,P区的空穴将向N区扩散,其结果导致在N区靠近结的边缘有高于正常情况时的空穴浓度,这种超量的空穴浓度可视为电荷存储到PN结的邻域,存储电荷量的大小取决于PN结上所加正向电压值的大小。变化很小,因为在一定的温度条件下,由本征激发决定的少子浓度是一定的,故少子形成的漂移电流是恒定的,基本上与所加反向电压的大小无关,这个电流也称为反向饱和电流。从N区漂移到P区的空穴补充了原来交界面上P区失去的空穴,而从P区漂移到区的电子补充了原来交界面上N区所失去的电子,这就使空间电荷减少。

2024-04-23 15:05:05 932

原创 MATLAB使用速成 第八章(定积分的计算与微分方程求解)

(2)函数integral2可用于求解二重积分,具体使用方法为“integral2(f,a,b,c,d,'RelTol',tol)”,其中f为被积函数的函数句柄(函数涉及的运算必须采用数组运算),[a,b]为第一次积分区间,[c,d]为第二次积分区间,tol为计算精度(若不指定,缺省精度是10-6,不指定tol时'RelTol'需省略)。(2)对于语句“trapz(x, y)”,x为分割点(节点)组成的向量,y为被积函数在节点上的函数值组成的向量,它可计算x、y代表的区域的面积,也就是使用梯形法求定积分。

2024-04-22 14:03:10 1431

原创 MATLAB使用速成 第七章(多项式运算与代数方程求解)

(1)多项式求值:语句“polyval(p,x)”可计算多项式p在x点的值,这里的x可以是向量或矩阵,如果是向量或矩阵则采用的是相应的数组运算,也就是每个元素分别代入p中进行求值,返回一个同等大小的向量或矩阵。②fzero先找出一个包含x0的区间,使得f在这个区间的两个端点上的函数值异号,然后再在这个区间内寻找方程f(x)=0 的解;(2)矩阵多项式求值:语句“polyvalm(p,A)”可计算多项式p作用在矩阵A上的值,这里的A必须是方阵,且采用的是普通矩阵运算,也就是线性代数中的矩阵运算。

2024-04-22 12:30:26 796

原创 MATLAB使用速成 第六章(符号计算)

(1)符号运算以推理方式进行,不受计算误差累积所带来的困扰。(2)符号计算可以给出完全正确的封闭解,或任意精度的数值解(封闭解不存在时)。(3)符号计算指令的调用比较简单,与教科书上的公式相近。(4)符号计算所需的运行时间相对较长。

2024-04-21 21:34:10 1433

原创 MATLAB使用速成 第五章(MATLAB编程基础)

(1)用MATLAB语言编写的程序称为M文件,由若干MATLAB命令组合在一起构成,可以完成某些操作,也可以实现某种算法。M文件以“.m”为扩展名,M文件的命名规则与变量相同。(2)根据调用方式不同,M文件可分为:①Script:脚本文件/命令文件(直接输入文件名即可运行)。②Function:函数文件(供其它M文件调用,通常带输入参数和输出参数)。(3)M文件中的百分号是注释符,其后跟着的是程序注释。(需要说明的是,format中的百分号是格式控制符而不是注释符)

2024-04-21 15:02:42 1012

原创 MATLAB使用速成 第四章(逻辑函数和控制结构)

(3)关系操作符可以比较两个同样大小的矩阵(或矢量),两个矩阵(或矢量)中的每一个元素相比较,返回一个由各元素比较结果(0和1)构成的矩阵(或矢量);关系操作符还可以用来比较一个矩阵(或矢量)和一个标量,标量和矩阵(或矢量)中的每一个元素相比较,返回一个由标量与矩阵(或矢量)各元素比较结果(0和1)构成的矩阵(或矢量)。②menu可以有若干个参数(一般参数类型都是字符串),第一个参数可认为是菜单的标题,第二个参数开始可认为是菜单的选项,从左至右分别为菜单的第一选项、第二选项……

2024-04-19 16:11:52 1142

原创 MATLAB使用速成 第三章(MATLAB绘图)

(3)双y轴图——将两个二维曲线输出到同一坐标图中,它们共用同一个x轴,但有各自的y轴,可使用命令plotyy(x1,y1,x2,y2,function)对其进行绘制,其中function是指定的绘图函数,可取plot(默认)、semilogx、semilogy、loglog等(function需要用单引号包含)。(1)指定点和线属性的命令——plot(x,y,str),这里的str是用单引号括起来的字符串,用来指定图形的点、线的形状和颜色(颜色、线型、点标记可以全部指定,也可以部分指定,顺序任意)。

2024-04-19 13:00:02 1706

原创 MATLAB使用速成 第二章(MATLAB中的函数)

如果函数定义的参数本身就是矢量,而函数的输入是矩阵(此时矩阵可看作是元素类型为列矢量的行矢量),则函数将作用在矩阵的各列上。若x是矩阵,则返回两个行矢量,a表示x各列的最大值,b对应最大值元素的位置。若x是矩阵,则返回两个行矢量,a表示x各列的最小值,b对应最小值元素的位置。以矩阵x第n列数据为准,升序排序矩阵x的各行(若n为负数,则以第-n列数据为准按降序排列矩阵x的各行)函数f作用在标量x上,这与数学中的f(x)效果是一样的,而f(x)也是一个标量。当x为矩阵时,返回值是包含各列元素之和的行矢量。

2024-04-18 12:32:26 1255

原创 MATLAB使用速成 第一章(MATLAB入门)

(1)变量名称以字母开头。(2)除第一个字符外,后面可以跟字母、数字和下划线。(3)变量名中的字母区分大小写。(1)clear命令(无操作数):清除工作空间中的所有变量。(2)clear命令(有操作数):清除工作空间中指定的变量。(1)系统预定义的变量:变量名值pi圆周率inf,Inf无穷大nan,NanNot-a-Number,一个不定值eps浮点运算相对精度(或者说相对误差)i,j虚部单位(2)注意事项:①应尽量避免给系统预定义变量重新赋值。

2024-04-18 12:28:28 1941

原创 数据结构 第八章(排序算法)【下】

(1)分配类排序不需要比较关键字的大小,它是根据关键字中各位的值,通过对待排序记录进行若干趟“分配”与“收集”来实现排序的,是一种借助于多关键字排序的思想对单关键字进行排序的方法。(2)假设记录的逻辑关键字由d个关键字组成,每个关键字可能取rd个值,只要从最低数位关键字起,按关键字的不同值将序列中记录分配到rd个队列中后再收集,如此重复d次完成排序,按这种方法实现排序称之为基数排序,其中“基”指的是rd的取值范围。基数排序是典型的分配类排序,又叫桶排序或箱排序。

2024-04-06 21:58:13 1059

原创 数据结构 第八章(排序算法)【上】

(1)排序是按关键字的非递减或非递增顺序对一组记录重新进行排列的操作,如果参加排序的数据结点包含多个数据域,那么排序往往是针对其中某个域而言。(2)当待排序的序列中存在两个或两个以上关键字相等的记录时,则排序所得的结果不唯一。假设(1≤i≤n,1≤j≤n,i≠j),且在排序前的序列中领先于(即i<j),若在排序后的序列中仍领先于,则称所用的排序方法是稳定的,反之,若可能使排序后的序列中领先于,则称所用的排序方法是不稳定的。

2024-04-06 21:47:16 1318

原创 数据结构 第七章(查找算法)

为了改善算法的运行效率,可以闲置数组R的0号元素不用于存储,进入查找算法后把需要查找的值赋给0号元素,然后从顺序表的最后一个元素开始,逐个元素与0号元素比较,查找到目标元素后当即结束查找并返回元素的下标,当目标元素不在顺序表中时,查找算法遍历所有元素后最终会访问0号元素,这时必定会结束查找并返回0,代表要查找的元素不在顺序表中,如此,可以免去查找过程中每一步都要检测整个表是否查找完毕。若表中存在这样的一个记录,则称查找成功,此时查找的结果可给出整个记录的信息,或指示该记录在查找表中的位置;

2024-04-05 22:21:58 1117

原创 数据结构 第六章(图)【下】

(2)构造最小生成树有多种算法,其中多数算法利用了最小生成树的一种简称为MST的性质:假设N=(V, E)是一个连通网,U是顶点集V的一个非空子集,若(u, v)是一条具有最小权值(代价)的边,其中uϵU(已落在生成树上的顶点集)、vϵV-U(尚未落在生成树上的顶点集),则必存在一棵包含边(u, v)的最小生成树。的最迟开始时间l(i)和其最早开始时间e(i)的差值是该活动完成的时间余量,它是在不增加完成整个工程所需的总时间的情况下,活动。①若网中有几条关键路径,则需加快同时在几条关键路径上的关键活动。

2024-04-05 15:31:09 1173

原创 数据结构 第六章(图)【上】

(1)图(Graph)G由两个集合V和E组成,记为G=(V, E),其中V是顶点的有穷非空集合,E是V中顶点偶对的有穷集合。V(G)和E(G)通常分别表示图G的顶点集合和边集合,E(G)可以为空集,若E(G)为空,则图G只有顶点而没有边。(2)对于图G,若边集E(G)为有向边的集合,则称该图为有向图;若边集(G)为无向边的集合,则称该图为无向图。

2024-04-04 15:05:34 1576

原创 数据结构 第五章(树和二叉树)【下】

(1)问题描述:设计二叉树的双序遍历算法(对于二叉树的每一个结点来说,先访问这个结点,再按双序遍历它的左子树,然后再一次访问这个结点,接下来按双序遍历它的右子树)。②新增数据元素,无需按逻辑上的次序存储,删除叶子结点上的数据元素同理,但如果删除的不是叶子结点,那就需要把以该结点为根的子树中的全部结点删除。②构造一个新结点,从F中选取两棵根结点权值最小的树作为新结点的左、右子树,并且将新结点的权值置为左、右子树上根结点的权值之和。②后根(次序)遍历,即先依次后根遍历根的每棵子树,然后访问树的根结点。

2024-04-04 00:00:31 1115

原创 数据结构 第五章(树和二叉树)【上】

(1)树是n(n≥0)个结点的有限集,它或为空树(n=0),或为非空树。对于非空树T,有且仅有一个称之为根的结点(一棵树可以只有根结点,没有其它结点),除根结点以外的其余结点可分为m(m>0)个互不相交的有限集,其中每个集合本身又是一棵树,并且称为根的子树(下图中结点A有3棵子树)。(2)树的结构定义是一个递归的定义,即在树的定义中又用到树的定义。(1)二叉树(Binary Tree)是n(n≥0)个结点所构成的集合,它或为空树(n=0),或为非空树。对于非空树T有且仅有一个称之为根的。

2024-04-03 22:03:46 1513

原创 数据结构 第四章(串、数组和广义表)

(1)串或字符串是由零个或多个字符组成的有限序列,用双引号在序列的两端进行标识。(2)串中的数目称为串的长度,零个字符的串称为空串。(3)串中任意个连续的字符组成的子序列称为该串的子串,包含子串的串相应地称为主串。通常称字符在序列中的序号为该字符在串中的位置,子串在主串中的位置则以子串的第一个字符在主串中的位置来表示。(4)当且仅当两个串的值相等,称这两个串是相等的,也就是说,只有当两个串的长度相等且各个对应位置的字符都相等时两个串才相等。

2024-04-03 08:47:33 864

原创 数据结构 第三章(栈和队列)【下】

②假设当前队列分配的最大空间为6,则当队列处于上图(d)所示的状态时不可再继续插入新的队尾元素,否则会出现溢出现象,即因数组越界而导致程序的非法操作错误,事实上,此时队列的实际可用空间并未占满,所以这种现象称为“假溢出”,这是由“队尾入队,队头出队”这种受限制的操作造成的。④出队操作是指将队头元素删除,删除前需判断队列是否为空(头指针和尾指针相等且标志位为1时,说明队列中没有元素,也就是队空),不为空则开始出队,当出完最后一个元素时,头指针和尾指针相等,此时需要将标志位置0以表队空。

2024-04-02 15:08:13 921

原创 数据结构 第三章(栈和队列)【上】

(1)栈(stack)是限定仅在表尾进行插入或删除操作的线性表,对栈来说,表尾端有其特殊含义,称为栈顶(top),相应地,表头端称为栈底(bottom)。不含元素的空表称为空栈。(2)栈的修改是按后进先出的原则进行的,最早进入栈的元素最晚离开,因此栈又称为后进先出(LIFO)的线性表。(1)和栈相反,队列(queue)是一种先进先出(FIFO)的线性表,它只允许在表的一端进行插入,而在另一端删除元素。(2)最早进入队列的元素最早离开。在队列中,允许插入的一端称为队尾。

2024-04-02 15:05:55 968

原创 数据结构 第二章(线性表)

同一线性表中的元素必定具有相同的特性,即属于同一数据对象,相邻数据元素之间存在着序偶关系。由n(n≥0)个数据特性相同的元素构成的有限序列称为线性表,线性表中元素的个数n定义为线性表的长度,当n=0时称之为空表。对于非空的线性表或线性结构,其特点是:①存在唯一的一个被称作“第一个”的数据元素。②存在唯一的一个被称作“最后一个”的数据元素。③除第一个元素之外,结构中的每个数据元素均只有一个前驱。④除最后一个元素之外,结构中的每个数据元素均只有一个后继。​。

2024-04-01 15:49:45 1515 1

原创 数据结构 第一章(绪论)

(1)算法时对特点问题求解方法和步骤的一种描述,它是指令的有限序列,其中每个指令表示一个或多个操作。(2)一个算法必须满足以下5个重要特性:①有穷性。一个算法必须总是在执行有穷步后结束,且每一步都必须在有穷时间内完成。②确定性。对于每种情况下所应执行的操作,在算法中都有确切的规定,不会产生二义性,算法的执行者或阅读者都能明确其含义及如何执行。③可行性。算法中的所有操作都可以通过将已经实现的基本操作运算执行有限次来实现。④输入。

2024-04-01 00:05:57 1246

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除