差额货币的存储方法、装置、电子设备及存储介质与流程

文档序号:27126877发布日期:2021-10-27 20:17阅读:90来源:国知局
差额货币的存储方法、装置、电子设备及存储介质与流程
差额货币的存储方法、装置、电子设备及存储介质
1.本技术为在2020年03月09日提交中国专利局、申请号为 202010158748.x的中国专利申请的分案申请,其全部内容通过引用结合在本技术中。
技术领域
2.本技术涉及电子货币技术领域,具体而言,本技术涉及一种差额货币的存储方法、装置、电子设备及存储介质。


背景技术:

3.现有技术中每次找零所获得的差额货币均需要重新添加到二叉排序树中,消耗的资源较多。


技术实现要素:

4.本技术的目的旨在至少能解决上述的技术缺陷之一,特提出以下技术方案:
5.第一方面,提供了一种差额货币的存储方法,包括:
6.接收到对预设数值的电子货币的支付请求;
7.响应于所述支付请求,遍历包括至少两个节点的有序二叉树,对比所述有序二叉树的根节点的电子货币数值与预设数值,根据对比结果确定数值与所述预设数值的电子货币相匹配的目标电子货币及其匹配节点,其中,任一所述节点存储有相应数值的电子货币;
8.根据所述预设数值与所述目标电子货币确定差额货币,将所述差额货币存储于所述匹配节点的根节点的尾子树节点中。
9.在第一方面的可选实施例中,所述对比所述有序二叉树的根节点的电子货币数值与预设数值的步骤之后,还包括:
10.若所述预设数值不小于根节点的电子货币数值,从根节点向下依次获取右子树上存储的电子货币数值;
11.若所述预设数值小于根节点的电子货币数值,从根节点向下依次获取左子树上存储的电子货币数值。
12.在第一方面的可选实施例中,所述遍历包括至少两个节点的有序二叉树,对比所述有序二叉树的根节点的电子货币数值与预设数值,根据对比结果确定数值与所述预设数值的电子货币相匹配的目标电子货币及其匹配节点的步骤,包括:
13.调用预先构建的有序二叉树;
14.根据预设数值依次获取所述有序二叉树上左子树或右子树上各节点的电子货币数值;
15.获取各节点的电子货币数值与所述预设数值的差值,若存在符合预设条件的差值,则将所述符合预设条件的差值对应的电子货币确定为目标电子货币,将该目标电子货币的存储节点确定为匹配节点,若不存在所述符合预设条件的差值,则重新根据所述预设数值依次获取所述有序二叉树上左子树或右子树上各节点的电子货币数值,并获取各节点
的电子货币数值与所述预设数值的差值,直至确定目标电子货币及匹配节点。
16.在第一方面的可选实施例中,所述预设条件包括:电子货币数值与所述预设数值的差额最小。
17.在第一方面的可选实施例中,检测到所述匹配节点对应的尾子树节点中存储有差额货币时,所述根据所述预设数值与所述目标电子货币确定差额货币的步骤,包括:
18.基于所述尾子树节点中存储的差额货币更新所述匹配节点的电子货币数值;
19.根据更新后的电子货币数值和所述预设数值获得两者之间的差额货币。
20.在第一方面的可选实施例中,当所述目标电子货币为电子货币组合时,所述根据所述预设数值与所述目标电子货币确定差额货币的步骤,包括:
21.统计所述电子货币组合中的各电子货币数值获得对应的电子货币总值;
22.确定所述电子货币总值超出预设数值的电子货币为差额货币。
23.在第一方面的可选实施例中,所述根据对比结果确定数值与所述预设数值的电子货币相匹配的目标电子货币及其匹配节点的步骤之后,还包括:
24.将所述匹配节点更新后的电子货币数值作为所述支付请求的响应值执行支付操作;
25.所述支付操作完成后,将所述预设数值的电子货币对应的差额货币与所述目标电子货币置于不可用状态;
26.调整将所述目标电子货币作为根节点的子节点的链接。
27.在第一方面的可选实施例中,所述将所述差额货币存储于所述匹配节点的根节点的尾子树节点中的步骤之后,还包括:
28.若检测到所述尾子树节点中已经存储有差额货币,合并已经存储的差额货币及当次待存储的差额货币,并将合并后的差额货币存储于所述尾子树节点。
29.第二方面,提供了一种差额货币的存储装置,包括:
30.接收支付请求模块,用于接收到对预设数值的电子货币的支付请求;
31.确定匹配节点模块,用于响应于所述支付请求,遍历包括至少两个节点的有序二叉树,对比所述有序二叉树的根节点的电子货币数值与预设数值,根据对比结果确定数值与所述预设数值的电子货币相匹配的目标电子货币及其匹配节点,其中,任一所述节点存储有相应数值的电子货币;
32.存储模块,用于根据所述预设数值与所述目标电子货币确定差额货币,将所述差额货币存储于所述匹配节点的根节点的尾子树节点中。
33.在第二方面的可选实施例中,所述差额货币的存储装置,还包括:
34.对比模块,用于对比所述有序二叉树的根节点的电子货币数值与预设数值;
35.第一获取模块,用于若所述预设数值不小于根节点的电子货币数值,从根节点向下依次获取右子树上存储的电子货币数值;
36.第二获取模块,用于若所述预设数值小于根节点的电子货币数值,从根节点向下依次获取左子树上存储的电子货币数值。
37.在第二方面的可选实施例中,确定匹配节点模块,还包括:
38.调用单元,用于调用预先构建的有序二叉树;
39.遍历单元,用于根据预设数值依次获取所述有序二叉树上左子树或右子树上各节
点的电子货币数值;
40.确定目标电子货币单元,用于获取各节点的电子货币数值与所述预设数值的差值,若存在符合预设条件的差值,则将所述符合预设条件的差值对应的电子货币确定为目标电子货币,将该目标电子货币的存储节点确定为匹配节点,若不存在所述符合预设条件的差值,则重新根据所述预设数值依次获取所述有序二叉树上左子树或右子树上各节点的电子货币数值,并获取各节点的电子货币数值与所述预设数值的差值,直至确定目标电子货币及匹配节点。
41.在第二方面的可选实施例中,确定匹配节点模块中的预设条件包括:电子货币数值与所述预设数值的差额最小。
42.在第二方面的可选实施例中,检测到所述匹配节点对应的尾子树节点中存储有差额货币时,所述存储模块,还包括:
43.更新数值单元,用于基于所述尾子树节点中存储的差额货币更新所述匹配节点的电子货币数值;
44.获得差额货币单元,用于根据更新后的电子货币数值和所述预设数值获得两者之间的差额货币。
45.在第二方面的可选实施例中,所述存储模块,包括:
46.统计电子货币总值单元,用于统计所述电子货币组合中的各电子货币数值获得对应的电子货币总值;
47.确定差额货币单元,用于确定所述电子货币总值超出预设数值的电子货币为差额货币。
48.在第二方面的可选实施例中,所述差额货币的存储装置,还包括:
49.支付操作模块,用于将所述匹配节点更新后的电子货币数值作为所述支付请求的响应值执行支付操作;
50.设置模块,用于所述支付操作完成后,将所述预设数值的电子货币对应的差额货币与所述目标电子货币置于不可用状态;
51.调整链接模块,用于调整将所述目标电子货币作为根节点的子节点的链接。
52.在第二方面的可选实施例中,所述差额货币的存储装置,还包括:
53.合并模块,用于检测到所述尾子树节点中已经存储有差额货币,合并已经存储的差额货币及当次待存储的差额货币,并将合并后的差额货币存储于所述尾子树节点。
54.第三方面,提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行程序时实现本技术第一方面所示的差额货币的存储方法。
55.第四方面,提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,该程序被处理器执行时实现本技术第一方面所示的差额货币的存储方法。
56.本技术提供的技术方案带来的有益效果是:
57.本技术提供的差额货币的存储方法,通过在根节点上添加尾子树节点,将找零操作得到的差额货币存储到尾子树节点上,避免将差额货币按照预设规则重新存储到有序二叉树中产生的资源消耗;而且,由于尾子树节点与其对应的根节点的深度不超过1,因此,定位该尾子树节点的耗时也相对较少,大大降低将差额货币重新添加到有序二叉树中的资源
消耗。
58.本技术附加的方面和优点将在下面的描述中部分给出,这些将从下面的描述中变得明显,或通过本技术的实践了解到。
附图说明
59.本技术上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
60.图1为本技术实施例提供的一种差额货币的存储方法的应用场景图;
61.图2为本技术实施例提供的一种差额货币的存储方法的流程图;
62.图3为本技术一个示例中提供的确定数值与所述预设数值的电子货币相匹配的目标电子货币及其匹配节点的流程图;
63.图4为本技术实施例提供的一种差额货币的存储装置的结构示意图;
64.图5为本技术实施例提供的一种电子设备的结构示意图。
具体实施方式
65.下面详细描述本技术的实施例,实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本技术,而不能解释为对本技术的限制。
66.本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本技术的说明书中使用的措辞“包括”是指存在特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。
67.本领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样被特定定义,否则不会用理想化或过于正式的含义来解释。
68.为使本技术的目的、技术方案和优点更加清楚,下面将结合附图对本技术实施方式作进一步地详细描述。
69.本技术提供的差额货币的存储方法、装置、电子设备及存储介质,旨在解决现有技术的如上技术问题。
70.下面以具体地实施例对本技术的技术方案以及本技术的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本技术的实施例进行描述。
71.本技术提供的差额货币的存储方案可以应用于电子货币的账户系统中,该账户系统可以用来支付、接收、存储电子货币,该账户系统可以存储于客户端或服务器端,可以应
用于如图1所示的应用场景中,包括请求方的账户系统,支付方的账户系统,两个系统的交互可以通过服务器进行,优选地,本技术提供的方案应用于支付方的账户系统中,具体地,支付方的账户系统接收到请求方的账户系统发送且由服务器转发的对电子货币预设金额的支付请求,响应于该支付请求,支付方的账户系统在系统内部进行电子货币的匹配操作,获取数值与预设数值匹配的电子货币,将数值与预设数值相匹配的电子货币确定为目标电子货币,将目标电子货币返回给请求方,若匹配节点中存储的目标电子货币数值大于预设金额,确定找零操作返回的差额货币,将预设数值的电子货币返回给请求方,并将差额货币存储于匹配节点根节点的尾子树节点中,完成交易过程。
72.本技术实施例中提供了一种可能的实现方式,如图2所示,提供了一种差额货币的存储方法,可以应用于图1所示的支付方的账户系统中,可以包括以下步骤:
73.步骤s201,接收到对预设数值的电子货币的支付请求。
74.在交易场景中,一方发送预设数值的电子货币的支付请求,另一方接收到该支付请求,响应于该支付请求,执行支付操作,完成交易。本技术提供的方案可以在账户系统中执行,该账户系统作为支付方的账户系统,支付方的账户系统接收到请求方发送的对预设数值的电子货币的支付请求,在交易场景中,所述预设数值的电子货币为交易金额。
75.步骤s202,响应于所述支付请求,遍历包括至少两个节点的有序二叉树,对比所述有序二叉树的根节点的电子货币数值与预设数值,根据对比结果确定数值与所述预设数值的电子货币相匹配的目标电子货币及其匹配节点,其中,任一所述节点存储有相应数值的电子货币。
76.遍历二叉树之前,调用账户系统中预先构建的有序二叉树,二叉树上包括根节点和子节点,当二叉树上的节点超过两个时,一个根节点包括左子树节点和右子树节点,每个节点上均对应存储有额定数值的电子货币,二叉树上用于存储电子货币的节点,按照预设排序规则排列,如:若根节点下的左子树节点不空,则将数值小于根节点的电子货币数值的电子货币存储在左子树节点,若右子树不空,则将不小于根节点的电子货币数值的电子货币存储在右子树节点,而且,左子树和右子树可以分别为二叉树,即左子树节点及右子树节点还包括其子节点,新增电子货币按照上述预设排序规则加入二叉树,形成有序二叉树,二叉树上节点的排列还可以根据其他排序规则排列形成有序二叉树。
77.进一步地,为了迅速获取各节点存储的电子货币,获取各电子货币对应的存储地址,以便从该存储地址获取相应数值的电子货币,将左、右子树节点的电子货币数值及存储地址存储于其根节点的存储记录中,根据根节点的存储记录能够确定其左、右子树节点的电子货币数值及存储地址。
78.按照上述方式形成有序二叉树,有利于提高确定匹配节点的效率,为了进一步提高确定匹配节点的效率,还可以动态调整电子货币的存储记录,如:调整根节点的电子货币数值,使得有序二叉树形成平衡二叉树,减小二叉树的平均查找长度。
79.响应于请求方发送的支付请求,遍历有序二叉树上的每个节点,每个节点上均存储有相应数值的电子货币,确定有序二叉树上存储的数值与所述预设数值相匹配的电子货币作为目标电子货币,对应的节点为匹配节点。示例如下:有序二叉树上存储有如下节点,根节点存储有数值为10的电子货币,其左子树节点存储有数值为5的电子货币,其右子树节点上存储有数值为20的电子货币,假设预设数值为15的电子货币,那么,在交易场景中,目
标电子货币的数值不小于预设数值才能实现交易目的,因此,在该有序二叉树上,与预设数值相匹配的电子货币为数值为20的电子货币,其匹配节点为右子树节点。
80.本技术实施例中,预先构建有序二叉树,将各种数值的电子货币按照电子货币数值存储于有序二叉树上,便于后续根据电子货币数值迅速准确地定位目标电子货币,提高确定匹配节点的效率,缩短支付请求的响应时长。
81.步骤s203,根据所述预设数值与所述目标电子货币确定差额货币,将所述差额货币存储于所述匹配节点的根节点的尾子树节点中。
82.确定目标电子货币及其匹配节点之后,根据预设数值与目标电子货币确定差额货币,若目标电子货币的数值与预设数值不相等,即目标电子货币的数值大于预设数值,则存在找零问题,需要将目标电子货币置换成两个新的电子货币,一个数值等于预设数值,用于作为支付请求的响应值返回给请求方;另一个数值为两者的差额,即目标电子货币超出预设数值的差额,为支付后的剩余部分,仍归支付方所有,该过程称为找零过程。
83.结合上述示例,假设预设数值为15,目标电子货币为20,那么,差额货币为(20

15=5),将该差额货币存储于匹配节点的根节点的尾子树节点中,其中,尾子树节点为二叉树上没有子节点的子节点,即,在普通二叉树的基础上,增加了尾子树节点,该尾子树节点与左子树节点、右子树节点均作为根节点的子节点,尾子树节点与左子树节点/右子树节点的不同之处在于,左子树节点及右子树节点还可以作为其他子节点的根节点,继续延伸二叉树的深度,而尾子树节点没有子节点,即尾子树节点不能再作为其他子数的根节点。
84.进一步地,为了提高获取子节点上的电子货币的效率,将左、右子树节点及尾子树节点上的电子货币数值及存储地址存储于其根节点的存储记录中。
85.本技术提供的差额货币的存储方式,将差额货币存储于尾子树节点中,避免了将差额货币重新按照预设规则重新存储到二叉树中产生的资源消耗,而且,由于尾子树节点为根节点的子节点,因此,尾子树节点与其对应的根节点的深度不超过1,因此,定位该尾子树节点的耗时也相对较少,大大降低将差额货币重新添加到二叉树中的资源消耗,而且,将差额货币存储到尾子树节点中仅增加了有限的存储空间,但不影响确定匹配节点的效率。
86.为了更清楚本公开提供的差额货币的存储方案及其技术效果,接下来以多个实施例对其具体实施方案进行详细阐述。
87.本技术实施例中提供了一种可能的实现方式,在步骤s202的确定数值与所述预设数值的电子货币相匹配的目标电子货币及其匹配节点的步骤之前,还包括:
88.a1、对比所述有序二叉树的根节点的电子货币数值与预设数值;
89.a2、若所述预设数值不小于根节点的电子货币数值,从根节点向下依次获取右子树上存储的电子货币数值;
90.a3、若所述预设数值小于根节点的电子货币数值,从根节点向下依次获取左子树上存储的电子货币数值
91.由于本技术提供的二叉树为有序二叉树,因此,对比有序二叉树的根节点的电子货币数值与预设数值,根据对比结果确定与预设数值相匹配的节点位于左子树还是右子树,具体地,若预设数值小于二叉树根节点的电子货币数值,则在左子树中查找匹配节点,若预设数值不小于二叉树根节点的电子货币数值,则在右子树中查找匹配节点,按照这种方式,从根节点向下依次获取左子树或右子树上存储的电子货币数值,该种方案能够将将
节点查找时间减少至1/n,n为二叉树上的节点数量,提高匹配节点的查找效率。
92.本技术实施例还提供了一种可能的实现方式,步骤s202的遍历包括至少两个节点的有序二叉树,对比所述有序二叉树的根节点的电子货币数值与预设数值,根据对比结果确定数值与所述预设数值的电子货币相匹配的目标电子货币及其匹配节点的步骤,可以通过如下方式实现,其流程图如图3所示,包括如下子步骤:
93.s510,调用预先构建的有序二叉树;
94.s520,根据预设数值依次获取所述有序二叉树上左子树或右子树上各节点的电子货币数值;
95.s530,获取各节点的电子货币数值与所述预设数值的差值,并将符合预设条件的差值对应的电子货币确定为目标电子货币,将该目标电子货币的存储节点确定为匹配节点。
96.当有序二叉树上的节点超过两个时,每个节点上均对应存储有额定数值的电子货币,二叉树上用于存储电子货币的节点,按照预设排序规则对电子货币排序,如:若根节点下的左子树节点不空,则左子树节点上存储的值小于其根节点上存储的值,若右子树不空,则右子树上存储的值不小于其根节点,而且,左子树和右子树可以分别为二叉树,即左子树节点及右子树节点还包括其子节点,作为其他子节点的根节点,当然二叉树上节点的排列还可以根据其他排序规则排列,按照排序规则形成有序二叉树。
97.其中,步骤s530包括如下子步骤:
98.s531,判断所述差值是否符合预设条件;
99.s532,若是,将符合预设条件的差值对应的电子货币确定为目标电子货币,将该目标电子货币的存储节点确定为匹配节点;
100.若否,循环执行步骤s520,根据预设数值遍历所述有序二叉树上各节点的电子货币数值,直至确定目标电子货币及匹配节点。
101.调用按照上述方式构建的有序二叉树,从根节点向下依次获取左子树或右子树节点的电子货币数值,然后获取节点的电子货币数值与所述预设数值的差值,确定电子货币数值与预设数值之间的差值符合预设条件的电子货币,则停止向下遍历,若未查找到符合预设条件的电子货币,则继续向下获取预设数值所在子树上的电子货币数值,所述预设条件可以设为电子货币数值与所述预设数值的差值最小,即目标电子货币可以大于也可以小于预设数值,电子货币数值与预设数值最接近。
102.在确定匹配节点所在的子树上之后,从根节点向下依次交替进行节点电子货币数值的获取与差值判断,由于有序二叉树上各节点按照数值有序排列,因此,无需获取匹配节点所在子树上全部节点的电子货币数值,即能确定目标电子货币及对应的匹配节点,有利于快速确定目标电子货币及匹配节点。
103.在一种可行实施例中,确定目标电子货币及匹配节点的过程如下:
104.假设预设数值为m,预设数值m除以2得到数值为a的电子货币,遍历有序二叉树,找到第一个数值不小于a的节点n(0),比较n(0)数值与预设数值m,包括如下情况:
105.n(0)>=m,则将n(0)作为目标电子货币,n(0)所在的节点为匹配节点。
106.n(0)<m,即a<n(0)<m的情况下,确定目标电子货币及匹配节点的过程如下:
107.n(0)为子节点时,判断n(0)+n(

1)是否不小于预设数值m,其中,n(

1) 为n(0)的
根节点,若大于,则n(0)+n(

1)作为目标电子货币组合,对应的节点为匹配节点组合;
108.若小于,检测n(0)是否为左子树节点,若n(0)为左子树节点,n(2) 为同一根节点的右子树节点,依次判断n(2)+n(

1),n(0)+n(

1)+n(2)是否大于m,若是,相对应的组合为匹配节点组合,若否,继续向上回溯;若 n(0)为右子树节点,n(1)为同一根节点的左子树节点,判断n(0)+n(

1)+n(1) 是否大于m,若是,相对应的组合为匹配节点组合,若否,继续向上回溯。
109.根据上述匹配规则,获取目标电子货币及对应的匹配节点,所述目标电子货币可以为目标电子货币组合,所述匹配节点可以为匹配节点组合。
110.按照本技术实施例提供的方案,在有序二叉树上确定符合预设条件的匹配节点,由于有序二叉树上的各节点按照电子货币数值有序排列,根据预设数值与二叉树中的电子货币数值能够迅速确定二叉树上符合条件的目标电子货币,提高确定匹配节点的效率。
111.本技术实施例利用电子货币数值与预设数值的差值最小实现目标电子货币的唯一性,避免利用超大额目标电子货币进行小额支付金额的支付操作,有利于减少找零操作,有效降低操作复杂性。
112.在此基础上,检测到匹配节点对应的尾子树节点中存储有差额货币时,步骤s203的根据预设数值与目标电子货币确定差额货币的步骤,可以通过如下方式实现,包括:
113.b1、基于所述差额货币更新匹配节点的电子货币数值;
114.b2、根据更新后的所述电子货币数值与所述预设数值获得两者之间的差额货币。
115.基于差额货币更新匹配节点的电子货币数值,可以通过如下方式进行:获取匹配节点的电子货币数值及尾子树节点中存储的差额货币;基于所述电子货币数值与所述差额货币更新所述匹配节点的电子货币数值。
116.当左、右子树节点均为不空时,所述子节点包括左子树节点和右子树节点,根节点的尾子树上存储有差额货币,利用尾子树节点上存储的差额货币更新匹配节点上的电子货币数值。
117.示例性的,若根节点a上存储的电子货币数值为10,左子树节点b 上存储的电子货币数值为5,右子树节点上存储的电子货币数值为20,其尾子树节点上存储的电子货币数值为5。
118.当根节点为匹配节点时,将(10+5)作为根节点更新后的电子货币数值。当根节点可以作为二叉树的子节点的情况下,即根节点的上层还存在其父类根节点,当该种类型的根节点为匹配节点时,按照上述方式,将该根节点作为子节点,更新该子节点的电子货币数值。
119.按照本技术实施例提供的方案,针对尾子树节点中存储有差额货币的情况,更新匹配节点的电子货币数值,基于更新后的匹配节点的电子货币数值进行支付操作或匹配节点的调整,有利于提高获取匹配节点的准确性。
120.按照上述方式获得匹配节点更新后的电子货币数值,基于更新后的电子货币数值与预设数值确定差额货币,假设预设数值为17,尾子树节点上存储的是5,二叉树上各节点的电子货币数值如下:根节点上的电子货币数值为10,且该根节点可以作为其他根节点的子节点,左子树节点上的电子货币数值为5,右子树节点上的电子货币数值为13,更新后左子树节点的电子货币数值为10,右子树节点上的电子货币数值为18,按照上述预设条件,即
更新后的电子货币数值不小于预设数值,则右子树节点为匹配节点,且该匹配节点的电子货币数值为18,利用匹配节点更新后的电子货币数值与预设数值确定差额货币,具体地,将匹配节点更新后的电子货币数值减去预设数值获得差额货币,在上述示例中,差额货币为 (18

17=1)。
121.当所述目标电子货币为电子货币组合时,根据所述预设数值与所述目标电子货币确定差额货币的步骤,包括:
122.c1、统计所述电子货币组合中的各电子货币数值获得对应的电子货币总值;
123.c2、确定所述电子货币总值超出预设数值的电子货币为差额货币。
124.示例如下:电子货币组合中包括数值为10、15、20,电子货币总值为(10+15+20),根据电子货币总值45,计算电子货币总值与预设数值的差值作为差额货币,以准确获得差额货币。
125.本技术实施例还提供了一种可能的实施方式中,在匹配节点的相关节点上存在尾子树节点的情况下,基于匹配节点、相关节点及尾子树节点上存储的电子货币调整目标电子货币及匹配节点,过程如下:
126.基于尾子树中存储的差额货币更新匹配节点的电子货币数值,若匹配节点n(y0)存在左子树节点n(y1),且n(y1)对应的尾子树中存储有差额货币,且n(y1)与尾子树中存储的差额货币的数值之和更接近预设数值,则将匹配节点调整为n(y1),目标电子货币为n(y1)与尾子树中存储的差额货币的数值之和,以便减小找零操作获得的差额货币的数值。
127.本技术实施例还提供了一种可能的实现方式,步骤s202的根据对比结果确定数值与所述预设数值的电子货币相匹配的目标电子货币及其匹配节点的步骤之后,还包括:
128.d1、将所述匹配节点的电子货币数值作为所述支付请求的响应值执行支付操作;
129.d2、所述支付操作完成后,将所述预设数值的电子货币对应的所述目标电子货币置于不可用状态;
130.d3、调整将所述目标电子货币作为根节点的子节点的链接。
131.在确定匹配节点之后,将匹配节点上存储的电子货币作为支付请求的响应值执行支付操作,在支付方的账户系统中,将目标电子货币置换为两部分,一部分电子货币数值与预设数值相等,预设数值的电子货币添加至请求方的账户系统中,另一部分的电子货币为差额货币,保存于支付方的尾子树节点中。
132.在支付操作完成后,由于支付方的账户系统中,目标电子货币已经被划分为两部分,其中预设数值的电子货币已经作为响应值添加到请求方构建的二叉树中,因此,在支付方的账户系统中,将目标电子货币置于不可用状态,保证支付操作的准确进行。
133.当所述任一根节点的尾子树节点中存储有差额货币时,上述d1、d2 可以通过如下方式进行,包括:
134.d11、获取匹配节点更新后的电子货币数值作为所述支付请求的响应值执行支付操作;
135.d22、所述支付操作完成后,将所述预设数值的电子货币对应的差额货币与所述目标电子货币置于不可用状态。
136.本技术实施例提供的方案针对尾子树节点中存储有差额货币的情况,根据差额货币更新匹配节点的电子货币数值,在支付过程中,将差额货币与目标电子货币作为一个整
体执行支付操作,因此,支付完成后,将差额货币与目标电子货币均置于不可用状态,避免差额货币及目标电子货币被重复调用,进而保证准确完成支付操作。
137.步骤d3的调整将所述目标电子货币作为根节点的子节点的链接可以通过如下示例实现:
138.若节点n(0)为匹配节点,将n(0)作为返回值执行支付操作时,将n(0) 置于不可用状态,相当于将n(0)从二叉树上去掉,此时,需要调整有序二叉树上的节点的链接,即节点指向,尤其是将目标电子货币作为根节点的子节点的链接,若n(0)的左子树不为空,其左子树节点是n(1),则调整将n(0)的根节点指向n(1),如果n(0)的右子树节点不为空,其右子树节点为n(2),则调整n(1)作为n(2)的根节点,以保证有序二叉树的有序链接,有利于下次匹配操作的正常进行。
139.步骤s203的将所述差额货币存储于所述匹配节点的根节点的尾子树节点中的步骤之后,还包括:
140.若检测到所述尾子树节点中已经存储有差额货币,合并已经存储的差额货币及当次待存储的差额货币。
141.本技术实施例提供的方案是待存储的尾子树节点中已存储有差额货币,且当次支付操作形成的差额货币依旧将该尾子树节点作为存储节点的情况下,将已经存储的差额货币及当次待存储的差额货币合并,一并存储于该尾子树节点中,以保持一个节点最多只有一个尾子树节点,减少尾子树节点的数量。
142.本技术实施例还提供了一种可能的实现方式,如图4所示,提供了一种差额货币的存储装置60,包括:接收支付请求模块601、确定匹配节点模块602、存储模块603,具体如下:
143.接收支付请求模块601,用于接收到对预设数值的电子货币的支付请求;
144.确定匹配节点模块602,用于响应于所述支付请求,遍历包括至少两个节点的有序二叉树,对比所述有序二叉树的根节点的电子货币数值与预设数值,根据对比结果确定数值与所述预设数值的电子货币相匹配的目标电子货币及其匹配节点,其中,任一所述节点存储有相应数值的电子货币;
145.存储模块603,用于根据所述预设数值与所述目标电子货币确定差额货币,将所述差额货币存储于所述匹配节点的根节点的尾子树节点中。
146.本技术提供的差额货币的存储装置,将差额货币存储于尾子树节点中,避免了将差额货币重新按照预设规则重新存储到二叉树中产生的资源消耗,而且,由于尾子树节点为根节点的子节点,因此,尾子树节点与其对应的根节点的深度不超过1,因此,定位该尾子树节点以及将差额货币存储到尾子树节点的耗时也相对较少,大大降低将差额货币重新添加到二叉树中的资源消耗,而且,将差额货币存储到尾子树节点中仅增加了有限的存储空间,但不影响确定匹配节点的效率。
147.本技术实施例提供的可选实施例中,所述差额货币的存储装置,还包括:
148.对比模块,用于对比所述有序二叉树的根节点的电子货币数值与预设数值;
149.第一获取模块,用于若所述预设数值不小于根节点的电子货币数值,从根节点向下依次获取右子树上存储的电子货币数值;
150.第二获取模块,用于若所述预设数值小于根节点的电子货币数值,从根节点向下依次获取左子树上存储的电子货币数值。
151.在第二方面的可选实施例中,所述差额货币的存储装置,还包括:
152.对比模块,用于对比所述有序二叉树的根节点的电子货币数值与预设数值;
153.第一获取模块,用于若所述预设数值不小于根节点的电子货币数值,从根节点向下依次获取右子树上存储的电子货币数值;
154.第二获取模块,用于若所述预设数值小于根节点的电子货币数值,从根节点向下依次获取左子树上存储的电子货币数值。
155.在第二方面的可选实施例中,确定匹配节点模块,还包括:
156.调用单元,用于调用预先构建的有序二叉树;
157.遍历单元,用于根据预设数值依次获取所述有序二叉树上左子树或右子树上各节点的电子货币数值;
158.确定目标电子货币单元,用于获取各节点的电子货币数值与所述预设数值的差值,若存在符合预设条件的差值,则将所述符合预设条件的差值对应的电子货币确定为目标电子货币,将该目标电子货币的存储节点确定为匹配节点,若不存在所述符合预设条件的差值,则重新根据所述预设数值依次获取所述有序二叉树上左子树或右子树上各节点的电子货币数值,并获取各节点的电子货币数值与所述预设数值的差值,直至确定目标电子货币及匹配节点。
159.在第二方面的可选实施例中,确定匹配节点模块中的预设条件包括:电子货币数值与所述预设数值的差额最小。
160.在第二方面的可选实施例中,检测到所述匹配节点对应的尾子树节点中存储有差额货币时,所述存储模块,还包括:
161.更新数值单元,用于基于所述尾子树节点中存储的差额货币更新所述匹配节点的电子货币数值;
162.获得差额货币单元,用于根据更新后的电子货币数值和所述预设数值获得两者之间的差额货币。
163.在第二方面的可选实施例中,所述存储模块,包括:
164.统计电子货币总值单元,用于统计所述电子货币组合中的各电子货币数值获得对应的电子货币总值;
165.确定差额货币单元,用于确定所述电子货币总值超出预设数值的电子货币为差额货币。
166.在第二方面的可选实施例中,所述差额货币的存储装置,还包括:
167.支付操作模块,用于将所述匹配节点更新后的电子货币数值作为所述支付请求的响应值执行支付操作;
168.设置模块,用于所述支付操作完成后,将所述预设数值的电子货币对应的差额货币与所述目标电子货币置于不可用状态;
169.调整链接模块,用于调整将所述目标电子货币作为根节点的子节点的链接。
170.在第二方面的可选实施例中,所述差额货币的存储装置,还包括:
171.合并模块,用于检测到所述尾子树节点中已经存储有差额货币,合并已经存储的差额货币及当次待存储的差额货币,并将合并后的差额货币存储于所述尾子树节点。
172.本公开实施例的差额货币的存储装置可执行本公开的实施例所提供的一种差额
货币的存储方法,其实现原理相类似,本公开各实施例中的差额货币的存储装置中的各模块所执行的动作是与本公开各实施例中的差额货币的存储方法中的步骤相对应的,对于差额货币的存储装置的各模块的详细功能描述具体可以参见前文中所示的对应的差额货币的存储方法中的描述,此处不再赘述。
173.基于与本公开的实施例中所示的方法相同的原理,本公开的实施例中还提供了一种电子设备,该电子设备可以包括但不限于:处理器和存储器;存储器,用于存储计算机操作指令;处理器,用于通过调用计算机操作指令执行实施例所示的差额货币的存储方法。与现有技术相比,本技术中的差额货币的存储方法可以在根节点上添加尾子树节点,将找零操作得到的差额存储到尾子树节点上,避免将差额货币按照预设规则重新存储到二叉树中产生的资源消耗。
174.在一个可选实施例中提供了一种电子设备,如图5所示,图5所示的电子设备4000包括:处理器4001和存储器4003。其中,处理器4001和存储器4003相连,如通过总线4002相连。可选地,电子设备4000还可以包括收发器4004。需要说明的是,实际应用中收发器4004不限于一个,该电子设备4000的结构并不构成对本技术实施例的限定。
175.处理器4001可以是cpu(central processing unit,中央处理器),通用处理器,dsp(digital signal processor,数据信号处理器),asic (application specific integrated circuit,专用集成电路),fpga(fieldprogrammable gate array,现场可编程门阵列)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本技术公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器4001 也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,dsp 和微处理器的组合等。
176.总线4002可包括一通路,在上述组件之间传送信息。总线4002可以是pci(peripheral component interconnect,外设部件互连标准)总线或 eisa(extended industry standard architecture,扩展工业标准结构)总线等。总线4002可以分为地址总线、数据总线、控制总线等。
177.存储器4003可以是rom(read only memory,只读存储器)或可存储静态信息和指令的其他类型的静态存储设备,ram(random accessmemory,随机存取存储器)或者可存储信息和指令的其他类型的动态存储设备,也可以是eeprom(electrically erasable programmable read onlymemory,电可擦可编程只读存储器)、cd

rom(compact disc read onlymemory,只读光盘)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。
178.存储器4003用于存储执行本技术方案的应用程序代码,并由处理器 4001来控制执行。处理器4001用于执行存储器4003中存储的应用程序代码,以实现前述方法实施例所示的内容。
179.其中,电子设备包括但不限于:移动电话、笔记本电脑、数字广播接收器、pda(个人数字助理)、pad(平板电脑)、pmp(便携式多媒体播放器)、车载终端(例如车载导航终端)等等的移动终端以及诸如数字 tv、台式计算机等等的固定终端。图5示出的电子设备仅仅是
一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
180.本技术实施例提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,当其在计算机上运行时,使得计算机可以执行前述方法实施例中相应内容。与现有技术相比,本技术中的差额货币的存储方法可以在根节点上添加尾子树节点,将找零操作得到的差额存储到尾子树节点上,避免将差额货币按照预设规则重新存储到二叉树中产生的资源消耗。
181.应该理解的是,虽然附图的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,附图的流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
182.需要说明的是,本公开上述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd

rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、rf(射频)等等,或者上述的任意合适的组合。
183.上述计算机可读介质可以是上述电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。
184.上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该电子设备执行时,使得该电子设备执行上述实施例所示的方法。
185.可以以一种或多种程序设计语言或其组合来编写用于执行本公开的操作的计算机程序代码,上述程序设计语言包括面向对象的程序设计语言—诸如java、smalltalk、c++,还包括常规的过程式程序设计语言—诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(lan)或广域网(wan)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
186.附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
187.描述于本公开实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。其中,模块的名称在某种情况下并不构成对该模块本身的限定,例如,接收模块还可以被描述为“用于接收支付请求的模块”。
188.以上描述仅为本公开的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本公开中所涉及的公开范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述公开构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本公开中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1