元素访问方法、装置、设备和存储介质制造方法及图纸

技术编号:24035881 阅读:33 留言:0更新日期:2020-05-07 01:53
本发明专利技术实施例公开了一种元素访问方法、装置、设备和存储介质。所述方法包括:获取目标元素在目标队列中的位置参数,以及数组的大小;基于所述目标元素的位置参数和所述数组的大小,确定读取所述目标元素在所述数组中的位置索引;基于所述位置索引读取所述目标元素。以实现高效、可重复、可随机访问队列中的任一元素的效果。

Element access methods, devices, devices, and storage media

【技术实现步骤摘要】
元素访问方法、装置、设备和存储介质
本专利技术实施例涉及信息访问技术,尤其涉及一种元素访问方法、装置、设备和存储介质。
技术介绍
随着大数据的时代的到来,在一个系统或数据库,甚至一个队列中都存储有大量数据,因此如何在一个系统或数据库,甚至一个队列中查找所需的数据或元素也就显得尤为重要。目前,在一个队列中查找所需的元素,一种是采用循环数组的方式,即现有的队列只支持访问队头一个元素,如果需要访问第二个元素,则先要删除第一个元素,然后再访问队头一个元素。另一种是采用遍历的方式,即如果想访问第三个元素,则使用一个指针先指向队头,然后向后连续移动两次,指向第三个元素,然后读出这个元素的值。针对第一种方式,因为在某些场景下,需要做到能任意访问队列内的元素,但又不想对队头元素进行删除,那么采用第一种方式就无法达到需求。针对第二种方式,那么访问第n个元素的时间复杂度将会是O(n),浪费时间,且不利于大型队列的频繁访问操作。
技术实现思路
本专利技术实施例提供一种元素访问方法、装置、设备和存储介质,以实现高效、可重复、可随机访问队列中的任一元素的效果。第一方面,本专利技术实施例提供了一种元素访问方法,该方法包括:获取目标元素在目标队列中的位置参数,以及数组的大小;基于所述目标元素的位置参数和所述目标队列中元素的总数量,确定读取所述目标元素在所述数组中的位置索引;基于所述位置索引读取所述目标元素。第二方面,本专利技术实施例还提供了一种元素访问装置,该装置包括:<br>参数获取模块,用于获取目标元素在目标队列中的位置参数,以及数组的大小;位置索引读取模块,用于基于所述目标元素的位置参数和所述目标队列中元素的总数量,确定读取所述目标元素在所述数组中的位置索引;目标元素读取模块,用于基于所述位置索引读取所述目标元素。第三方面,本专利技术实施例还提供了一种设备,该设备包括:一个或多个处理器;存储装置,用于存储一个或多个程序;当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本专利技术实施例中任一所述的元素访问方法。第四方面,本专利技术实施例还提供了一种包含计算机可执行指令的存储介质,其特征在于,所述计算机可执行指令在由计算机处理器执行时用于执行本专利技术实施例中任一所述的元素访问方法。本专利技术实施例通过获取目标元素在目标队列中的位置参数,以及数组的大小,基于所述目标元素的位置参数和所述数组的大小,确定读取所述目标元素在所述数组中的位置索引,基于所述位置索引读取所述目标元素,以实现高效、可重复、可随机访问队列中的任一元素的效果。附图说明图1是本专利技术实施例一中的一种元素访问方法的流程图;图2是本专利技术实施例一中的头指针、尾指针和队列中元素之间的关系图;图3是本专利技术实施例一中的循环数组的示意图;图4是本专利技术实施例一中的目标元素的位置索引确定示意图;图5是本专利技术实施例二中的一种元素访问方法的流程图;图6是本专利技术实施例二中的目标队列的长度确定示意图;图7是本专利技术实施例二中的一种元素访问方法执行流程图;图8是本专利技术实施例三中的一种元素访问装置的结构示意图;图9是本专利技术实施例四中的一种设备的结构示意图。具体实施方式下面结合附图和实施例对本专利技术作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本专利技术,而非对本专利技术的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本专利技术相关的部分而非全部结构。实施例一图1为本专利技术实施例一提供的一种元素访问方法的流程图,本实施例可适用于随机访问队列中的任一元素的情况,该方法可以由元素访问装置来执行,该元素访问装置可以由软件和/或硬件来实现,该元素访问装置可以配置在计算设备上,具体包括如下步骤:S110、获取目标元素在目标队列中的位置参数,以及数组的大小。示例性的,目标元素可以是用户在一个队列中想要获取的元素;目标队列可以是用户想要获取的目标元素所在的队列;目标元素在目标队列中的位置参数可以是用户想要获取的目标元素在该目标队列中的位置,具体的可以是该目标元素是该目标队列中的第几个元素。例如,一个队列A中的元素分别为:20、63、59、76和88,若用户想要获取该队列中的59这个元素,那么该队列A即为目标队列,目标元素则为59,目标元素在目标队列中的位置参数为队列A中的第2个位置(这里规定队列中的第一个元素为第0个元素,因此59就是目标队列中的第2个元素)。这里获取目标元素在目标队列中的位置参数,可以是用户在移动终端或电脑端的前端通过手动输入的想要获取任一队列中的任一元素,也可以是用户在移动终端或电脑端的前端通过语音输入的想要获取任一队列中的任一元素,例如,手动输入或语音输入的内容可以是:想要获取队列A中的第2个元素。在上述实施例的技术方案中,通过接收外部输入的目标元素在目标队列中的位置参数,这样设置的好处在于,移动终端或电脑端的后台服务器,或者操作人员可以很清楚的知道用户想要获取的目标元素在目标队列中的位置参数,以便于后续在该目标队列中进行查找该目标元素,并将该目标元素进行读取。S120、基于所述目标元素的位置参数和所述数组的大小,确定读取所述目标元素在所述数组中的位置索引。示例性的,位置索引可以是用户想要获取的目标元素在数组中的位置,通过目标元素的位置参数和数组的大小,基于一定的计算规则,即可直接获取目标元素在数组中的位置。可选的,可以是基于如下公式确定所述目标元素的位置索引:((i+n)%m)其中,i为目标队列中的第一元素在数组中的位置参数,n为所述目标元素在所述目标队列中的位置参数,m为数组大小,%为取余。示例性的,在这里先介绍一下队列的顺序表示和实现原理,与顺序栈相类似,在队列的顺序存储结构中,除了用一组地址连续的存储单元依次存放从队列的第一个元素到队列的最后一个元素外,还需附设两个指针:头指针和尾指针,头指针和尾指针分别指示队列的第一个元素及队列的最后一个元素的位置,参考图2所示的头指针、尾指针和队列中元素之间的关系图,这里规定初始化建空队列时,令头指针=尾指针=0,如图2中的a图所示为空队列时,头指针和尾指针均指向队列的第0个位置,每当插入新的队列尾元素时,尾指针增加1,如图2中的b图所示的当J1、J2、J3相继插入队列后,头指针和尾指针的位置;每当删除队列头元素时,头指针增加1,如图2中的c图所示的当J1、J2相继被删除后,头指针和尾指针的位置,以及如图2中的d图所示的当J4、J5、J6相继插入队列,且J3、J4相继被删除后,头指针和尾指针的位置。因此,在非空队列中,头指针始终指向队列头元素,而尾指针始终指向队列尾的下一个位置。可选的,本专利技术实施例的技术方案是基于循环数组实现的。假设图2为队列分配的最大空间,即最大空间为6,则当队列处于图2中的d图的状态时,不可再继续插入新的队尾元素,本文档来自技高网...

【技术保护点】
1.一种元素访问方法,其特征在于,包括:/n获取目标元素在目标队列中的位置参数,以及数组的大小;/n基于所述目标元素的位置参数和所述数组的大小,确定读取所述目标元素在所述数组中的位置索引;/n基于所述位置索引读取所述目标元素。/n

【技术特征摘要】
1.一种元素访问方法,其特征在于,包括:
获取目标元素在目标队列中的位置参数,以及数组的大小;
基于所述目标元素的位置参数和所述数组的大小,确定读取所述目标元素在所述数组中的位置索引;
基于所述位置索引读取所述目标元素。


2.根据权利要求1所述的方法,其特征在于,所述基于所述目标元素的位置参数和所述数组的大小,确定读取所述目标元素在所述数组中的位置索引,包括:
基于如下公式确定所述目标元素在所述数组中的位置索引:
((i+n)%m)
其中,i为目标队列中的队头元素在数组中的位置参数,n为所述目标元素在所述目标队列中的位置参数,m为数组大小,%为取余。


3.根据权利要求1所述的方法,其特征在于,所述基于所述位置索引读取所述目标元素,包括:
控制所述目标队列的指针至所述位置索引;
基于所述指针读取所述位置索引对应的目标元素。


4.根据权利要求1所述的方法,其特征在于,在获取目标元素在目标队列中的位置参数之后,所述方法还包括:
根据目标队列中的第一个元素在数组中的位置参数,以及目标队列中最后一个元素在数组中的位置参数,确定所述目标队列的长度;
根据所述目标队列的长度和所述目标元素的位置参数,确定所述目标队列中是否存在所述目标元素。


5.根据权利要求4所述的方法,其特征在于,包括:
当所述目...

【专利技术属性】
技术研发人员:蓝迪
申请(专利权)人:上海米哈游网络科技股份有限公司
类型:发明
国别省市:上海;31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1