下面以顺序存储结构的线性表的插入和删除操作实现方法为例讨论顺序存储结构下操作的实现方法。 设线性表的最大数据元素个数为m,当前线性表中已有n(n≤m)个数据元素,要插入的数据元素保存在变量x中,线性表采用顺序存储结构存储。试设计顺序存储结构线性表的插入操作算法。......
2023-11-18
链式存储结构是用指针勾链来保持数据元素之间的联系关系的。和顺序存储结构下操作实现不同的是,链式存储结构下的操作实现主要是申请新的内存单元空间和用指针勾链。下面以链式存储结构的线性表的插入和删除操作实现方法为例讨论链式存储结构下操作的实现方法。
【例8-3】 设线性表中已有若干个数据元素,要插入的数据元素保存在变量x中,线性表采用链式存储结构存储。试设计链式存储结构的线性表的插入操作算法。
设计思想说明:为说明算法设计思想,我们假设线性表的数据元素类型为整数,线性表的数据元素集合为{10,11,12,14,15,16},则该链式存储结构的线性表在内存中的存储示意图如图8-10(a)所示;假设要在线性表的第i=3个数据元素前插入一个新的数据元素13,则必须首先申请一个新的结点空间,并把变量x的数值13赋给该结点的数据元素域,其示意图如图8-10(b)所示;然后从链表的起始指针h(称作头指针)开始,寻找到第i-1个结点的指针,让新结点的指针域指向第i-1个结点,让第i-1个结点的指针域指向新结点,完成新结点链入到链表中,其示意图如图8-10(c)所示。
图8-10 链式存储下线性表的插入过程
(a)插入前;(b)新结点赋值;(c)链入
算法设计:设链表的头指针为h,要插入的新的结点位置为i(i从0开始计数),要插入的数据元素保存在变量x中,则算法如下:
(1)动态申请一个新的结点空间,设该结点由指针s指示;
(2)把变量x的数值赋给新结点的数据元素域;
(3)从头指针h开始找到链表的第i-1个结点;
(4)让新结点的指针域指向第i-1个结点;(www.chuimin.cn)
(5)让第i-1个结点的指针域指向新结点。
【例8-4】 设线性表中已有若干个数据元素,删除的数据元素保存在变量x中,线性表采用链式存储结构存储,设计链式存储结构的线性表的删除操作算法。
设计思想说明:为说明算法设计思想,和例8-3类同,我们假设线性表的数据元素类型为整数,线性表的数据元素集合为{10,11,12,13,14,15,16},则该线性表在内存中的存储示意图如图8-11(a)所示。假设要删除线性表的第i(i=3)个数据元素,则必须首先从指针h开始找到第i-1结点,并把第i结点中的数据元素赋值到变量x,其示意图如图8-11(b)所示;然后把第i-1结点的指针域指向第i+1结点,完成所指结点从链表的删除,其示意图如图8-11(c)所示。
图8-11 链式存储下线性表的删除过程
(a)删除前;(b)保存;(c)删除
算法设计:设链表的头指针为h,要删除的结点位置为i,删除结点的数据元素保存到变量x中,则算法如下:
(1)从头指针h开始找到链表的第i-1个结点;
(2)把第i个结点的数据元素赋给变量x;
(3)把第i-1结点的指针域指向第i+1结点。
有关计算机导论的文章
下面以顺序存储结构的线性表的插入和删除操作实现方法为例讨论顺序存储结构下操作的实现方法。 设线性表的最大数据元素个数为m,当前线性表中已有n(n≤m)个数据元素,要插入的数据元素保存在变量x中,线性表采用顺序存储结构存储。试设计顺序存储结构线性表的插入操作算法。......
2023-11-18
在8.1节已讨论过链式存储结构下图书信息表的存储方法,图8-2给出了链式存储结构下图书信息表的存储关系示意,图8-2给出了链式存储结构下某次计算机运行时的内存存储图。图8-6 线性表的链式存储结构示意图高级语言要实现链式存储结构需要具有指针功能和内存空间的动态申请功能。链式存储结构的最大优点是内存资源的使用合理,除附加的指针内存空间外,不会出现太大的内存空间资源浪费,最大缺点是操作的实现方法相对复杂。......
2023-11-18
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
数控系统与计算机存储卡在线加工是以存储卡为存储介质,通过系统的第4I/O通道从存储卡上直接读取加工程序,进行DNC在线加工。2)将加工程序拷贝至存储卡内,可以一次拷贝多条程序。图7-60 FANUC系统的存储卡在线加工上述5步是通过启动自动操作实现存储卡在线加工的,除此之外还可指定M198子程序调用命令,由系统中主程序调用存储卡中的子程序实现在线加工。......
2023-06-23
若程序框图中同时存在优先级设为实时的VI和定时顺序,将导致无法预计的定时行为。名称是对定时循环的一个标志,一般被作为停止定时循环的输入参数,或者用来标识具有相同的启动时间的定时循环组。定时顺序结构由一个或多个任务子程序框图或帧组成,是根据外部或内部信号时间源定时后顺序执行的结构。定时顺序结构适于开发精确定时、执行反馈、定时特征等动态改变或有多层执行优先级的VI。图5-47 多帧定时循环图5-48 定时顺序结构......
2023-11-26
填写RD_DMA_SIZE寄存器,以字节为单位。填写DCSR2寄存器的mrd_start位,启动DMA读。等待DMA读完成中断产生后,结束DMA读。从硬件设计的角度来看,DMA读过程比DMA写过程复杂。Capric卡的1次DMA读操作使用两种TLP报文,并通过发送部件和接收部件协调完成。如果一次DMA读请求的数据大于512B[84]时,DMA控制逻辑需要发送多个存储器读请求TLP给RC,而且在DMA读操作中需要进行数据对界。DMA读操作的详细实现过程见第12.2.2节。......
2023-10-20
多半径倒圆角即可变倒圆角,是在同一条边链上的不同位置,设置不同的圆角半径值,以产生变化圆角的效果,其应用最为频繁。2)打开选项卡,在如图6-8所示收集栏中右键单击添加半径为“15.00”的圆角,模型倒角棱边显示如图6-9所示。注1:当只有两个半径值时,不显示倒圆角上的小圆圈,只能使用前一种方法。......
2023-06-19
相关推荐