一种基于数组链表式队列结构的数据存取方法技术

技术编号:28227029 阅读:23 留言:0更新日期:2021-04-28 10:04
本发明专利技术公开了一种基于数组链表式队列结构的数据存取方法,包括:预设数组的类型和数组的长度;通过移动指针,依次将数据存入数组的单元中;当指针指向的下一个单元存在数据时,查询当前数组中是否存在空白单元;若存在空白单元,则将数据存入空白单元中;若不存在空白单元,则设置NEXT标志存入当前指针指向的单元中,并新建数组,将新建数组信息存入上一数组的最后一个单元中;读取数据时依次读取数组中的数据,当指针指向NEXT标志时,获取并基于所述新建数组信息,跳转至下一数组进行数据读取。本发明专利技术通过采用数组为单体存储数据,并通过链表式连接将数组连接组成队列的数据结构,显著地提高了内存利用的合理性,还能提高数据存取的效率。数据存取的效率。数据存取的效率。

【技术实现步骤摘要】
一种基于数组链表式队列结构的数据存取方法


[0001]本专利技术涉及数据结构的数据存取的
,具体涉及一种基于数组链表式队列结构的数据存取方法。

技术介绍

[0002]在计算机使用过程中,计算机程序在进行数据存取时,需要选用其中一种数据结构进行数据存取,不同的数据结构能提供不同的数据存取特点。现有的数据结构包括数组、队列、链表、栈、树、图、堆、散列表等。不同的数据结构之间存在不同的特征,即存在不同的优点和缺点,其中,数组式队列和链表式队列为其中较为常用的数据结构。
[0003]其中,现有的数组式队列结构为若干数组逻辑连接而成的队列,在数组式队列初始化时,需要预设数组的长度以及队列的长度,使得在使用过程中,无法动态修改数组和队列的长度。一般无法预先获知数据的长度,当数据的长度过长时,无法完全存入数组式队列中;当数据的长度过短时,则会出现内存资源利用率不足。
[0004]现有的链表式队列在每次存入数据时,都需要重新申请内存,若数据的存入速度和读取速度相近的情况下,会出现不停重复申请内存的情况,导致出现不断重复的内存申请指令,占用本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种基于数组链表式队列结构的数据存取方法,其特征在于,包括:预设数组的类型和数组的长度;通过移动指针,依次将数据存入数组的单元中;当指针指向的下一个单元存在数据时,查询当前数组中是否存在空白单元;若存在空白单元,则将数据存入空白单元中;若不存在空白单元,则设置NEXT标志存入当前指针指向的单元中,并新建数组,将新建数组信息存入上一数组的最后一个单元中;读取数据时依次读取数组中的数据,当指针指向NEXT标志时,获取并基于所述新建数组信息,跳转至下一数组进行数据读取。2.根据权利要求1所述的基于数组链表式队列结构的数据存取方法,其特征在于,所述设置NEXT标志存入当前指针指向的单元中,具体执行:基于数据的下标值与2
n

1取模的结果,获取当前数组单元的下标值X,将下标值X作为NETX标志存入当前指针指向的单元中,新建数组的首个单元的下标值设置为X,将数据存入新建数组中下标值为X的单元中,所述n为任意自然数。3.根据权利要求2所述的基于数组链表式队列结构的数据存取方法,其特征在于:所述数组的长度的取值为2
n
+1。4.根据权利要求3所述的基于数组链表式队列结构的数据存取方法,其特征在于,所述通过移动指针,依次将数据存入数组的单元中之前,还执行判断长度子步骤,具体包括:判断所存入数据的长度是否超出数组的长度;若超过,则执行所述查询当前数组中是否存在空白单元;若不超过,则不执行所述查询当前数组中是否存在空白单元。5.根据权利要求4所述的基于数组链表式队列结构的数据存取方法,其特征在于:所述查询当前数组中是否存在空白单元,具体采用二分查找法进行查询。6.根据权利要求5所述的基于数组链表式队列结构的数据存取方法,其特征在于:所述查询当前数组中是否存在空白单元具体为,基于...

【专利技术属性】
技术研发人员:喻奇
申请(专利权)人:广州宸祺出行科技有限公司
类型:发明
国别省市:

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

1