链式存储结构是用指针勾链来保持数据元素之间的联系关系的。和顺序存储结构下操作实现不同的是,链式存储结构下的操作实现主要是申请新的内存单元空间和用指针勾链。下面以链式存储结构的线性表的插入和删除操作实现方法为例讨论链式存储结构下操作的实现方法。 设线性表中已有若干个数据元素,删除的数据元素保存在变量x中,线性表采用链式存储结构存储,设计链式存储结构的线性表的删除操作算法。......
2023-11-18
前面我们说过,顺序存储结构是采用数组存储数据元素的,用数组存储数据结构的数据元素集合时,只要用户程序给出数组的下标,系统就可以计算出该数组元素的地址。下面以顺序存储结构的线性表的插入和删除操作实现方法为例讨论顺序存储结构下操作的实现方法。
【例8-1】 设线性表的最大数据元素个数为m,当前线性表中已有n(n≤m)个数据元素,要插入的数据元素保存在变量x中,线性表采用顺序存储结构存储。试设计顺序存储结构线性表的插入操作算法。
设计思想说明:为说明算法设计思想,我们假设线性表的数据元素类型为整数,存储当前线性表的数组为a,数组a中已有n=6个数据元素,线性表的数据元素集合为{10,11,12,14,15,16},则该线性表在内存中的存储示意图如图8-8(a)所示。假设我们要在线性表的第i(i=3)个数据元素前插入一个新的数据元素13,则必须首先把包括第i个数据元素在内的第i个数据元素后的所有数据元素依次后移一个位置,其示意图如图8-8(b)所示。然后再把新的数据元素13插入到已空出的第i个数据元素位置,其示意图如图8-8(c)所示。
图8-8 数组存储下线性表的插入过程
(a)插入前;(b)后移;(c)插入
算法设计:设数组为a,数组的个数为m,当前数组中已有的数据元素个数为n,要插入的新的数据元素位置为数组下标i(i从0开始计数),要插入的数据元素保存在变量x中,则算法如下:
(1)IF(n==m)THEN该线性表已满,无法再插入新的数据元素,插入失败返回;
(2)ELSE
FOR(j=n+1;j>i;j=j-1)a[j]=a[j-1]; //逐个元素后移
n=n+1; //元素个数加1
a[ji]=x; //新元素插入
(3)插入成功返回。(www.chuimin.cn)
【例8-2】 设线性表线性表中有n(n≥0)个数据元素,删除的数据元素保存在变量x中,线性表采用顺序存储结构存储。试设计顺序存储结构线性表的删除操作算法。
设计思想说明:为说明算法设计思想,和例8-1类同,我们假设线性表的数据元素类型为整数,存储当前线性表的数组为a,数组a中已有n=7个数据元素,线性表的数据元素集合为{10,11,12,13,14,15,16},则该线性表在内存中的存储示意图如图8-9(a)所示。假设我们要删除线性表的第i(i=3)个数据元素,则必须首先把第i个数据元素保存到变量x中,其示意图如图8-9(b)所示。然后把不包括第i个数据元素在内的第i个数据元素后的所有数据元素依次前移一个位置,其示意图如图8-9(c)所示。
图8-9 数组存储下线性表的删除过程
(a)删除前;(b)保存;(c)前移
算法设计:设数组为a,当前数组中已有的数据元素个数为n,要删除的数据元素位置为数组下标i(i从0开始计数),删除后的数据元素保存在变量x中,则算法如下:
(1)IF(n==0)THEN该线性表已空,没有数据元素可删除,删除失败返回;
(2)ELSE
x=a[i]; //保存数据
FOR(j=i+1;j<n;j=j+1)a[j-1]=a[j]; //逐个元素前移
(3)删除成功返回。
有关计算机导论的文章
链式存储结构是用指针勾链来保持数据元素之间的联系关系的。和顺序存储结构下操作实现不同的是,链式存储结构下的操作实现主要是申请新的内存单元空间和用指针勾链。下面以链式存储结构的线性表的插入和删除操作实现方法为例讨论链式存储结构下操作的实现方法。 设线性表中已有若干个数据元素,删除的数据元素保存在变量x中,线性表采用链式存储结构存储,设计链式存储结构的线性表的删除操作算法。......
2023-11-18
若程序框图中同时存在优先级设为实时的VI和定时顺序,将导致无法预计的定时行为。名称是对定时循环的一个标志,一般被作为停止定时循环的输入参数,或者用来标识具有相同的启动时间的定时循环组。定时顺序结构由一个或多个任务子程序框图或帧组成,是根据外部或内部信号时间源定时后顺序执行的结构。定时顺序结构适于开发精确定时、执行反馈、定时特征等动态改变或有多层执行优先级的VI。图5-47 多帧定时循环图5-48 定时顺序结构......
2023-11-26
4)按软功能键〖存储卡〗,LCD将显示图9.3-3所示的存储卡文件。图9.3-3 存储卡显示2.操作提示当CNC数据输出到存储卡时,如果定义的文件名和存储卡内已有的文件名重复或默认的文件名一致时,LCD可以显示图9.3-4所示的提示页面。同样,如果存储卡中存在同名文件,LCD将显示图9.3-5c所示的操作软功能键,选择软功能键〖覆盖〗,将覆盖存储卡上的原文件;选择软功能键〖取消〗,可以取消数据输出操作。......
2023-06-25
存储过程是SQL查询语句与控制流语句的预编译集合,并以特定的名称保存在数据库中。存储过程也是数据库对象。可以在存储过程中声明变量、编写SQL语句、使用条件控制语句来实现存储过程的功能。然后,存储过程可以在数据库服务器的安全范围内进行维护,根本不触及应用程序代码。本章将介绍MySQL如何实现存储过程,不仅讨论其语法,还会展示如何创建、管理和执行存储过程。还将学习如何将存储过程集成到Web应用程序中。......
2023-10-29
图5-2 顺序状态机结构与顺序结构在状态之间的数据传递中,顺序状态机与顺序结构的实现方式是不同的。顺序型状态机模式的整个顺序状态序列的顺序是固定的,在程序运行时无法改变。也正是这一点制约了顺序型状态机的应用,因为它妨碍了作为LabVIEW优点之一的程序并行运行机制。为了能够在程序运行中改变状态序列的执行顺序,可以对其加以改进,采用移位寄存器代替循环索引控制状态机的执行。......
2023-07-02
顺序存储结构就是先向系统申请一块地址连续的存储单元,然后把数据按照某种次序存入这块内存单元的相应位置中。顺序存储结构的最大优点是使用方法简单,最大缺点是必须预先分析估计出所需定义数组的最大个数。......
2023-11-18
数控系统与计算机存储卡在线加工是以存储卡为存储介质,通过系统的第4I/O通道从存储卡上直接读取加工程序,进行DNC在线加工。2)将加工程序拷贝至存储卡内,可以一次拷贝多条程序。图7-60 FANUC系统的存储卡在线加工上述5步是通过启动自动操作实现存储卡在线加工的,除此之外还可指定M198子程序调用命令,由系统中主程序调用存储卡中的子程序实现在线加工。......
2023-06-23
多半径倒圆角即可变倒圆角,是在同一条边链上的不同位置,设置不同的圆角半径值,以产生变化圆角的效果,其应用最为频繁。2)打开选项卡,在如图6-8所示收集栏中右键单击添加半径为“15.00”的圆角,模型倒角棱边显示如图6-9所示。注1:当只有两个半径值时,不显示倒圆角上的小圆圈,只能使用前一种方法。......
2023-06-19
相关推荐