CN101128825A - 树的检索、合计、排序方法、信息处理装置以及树的检索、合计、排序程序 - Google Patents

树的检索、合计、排序方法、信息处理装置以及树的检索、合计、排序程序 Download PDF

Info

Publication number
CN101128825A
CN101128825A CNA200680003147XA CN200680003147A CN101128825A CN 101128825 A CN101128825 A CN 101128825A CN A200680003147X A CNA200680003147X A CN A200680003147XA CN 200680003147 A CN200680003147 A CN 200680003147A CN 101128825 A CN101128825 A CN 101128825A
Authority
CN
China
Prior art keywords
node
mentioned
identifier
summit
node identifier
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CNA200680003147XA
Other languages
English (en)
Inventor
古庄晋二
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Turbo Data Laboratories Inc
Original Assignee
Turbo Data Laboratories Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Turbo Data Laboratories Inc filed Critical Turbo Data Laboratories Inc
Publication of CN101128825A publication Critical patent/CN101128825A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9027Trees
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/40Data acquisition and logging

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

在可以有效地跟踪树型数据结构的数据之间的关系的树型数据结构中,高效率且快速地对树进行检索、合计、排序。在检索树型数据结构的拓扑的方法中,作为表现成为检索关键字的树的检索关键字排列,在存储器中生成用于表现节点之间的父子关系的、具有对应于赋予作为根节点以外的节点的各个非根节点的节点标识符的、与各个非根节点相关联的父节点的节点标识符的排列,向检索关键字排列中的节点标识符提供偏移,比较提供了偏移的节点标识符和基于偏移的包含于C-P排列中的部分的对应的节点标识符,并在存储装置中生成包含通过比较全部一致的C-P排列中的部分的节点标识符的、表示检索结果的顶点节点列表。

Description

树的检索、合计、排序方法、信息处理装置以及树的检索、合计、排序程序
技术领域
本发明涉及一种从构筑在存储装置上的、表现树型数据结构的排列中对树进行检索、合计、排序的方法、实现该方法的信息处理装置以及用于对树进行检索、合计、排序的程序。
背景技术
数据库使用于各种用途,但是,在中规模乃至大规模系统中,可以排除逻辑性矛盾的关系数据库(RDB)的使用成为主流。例如、RDB用于预约飞机座位等的系统。该情况下,通过指定关键项目,可以迅速检索(多为1个)目标,或者也可以进行预约的确认、取消或变更等。而且,因为各航班的座位数最多为数百个,所以也可以求得特定航班的空位数。
这样的RDB适合于表形式数据的处理,但是不适合于树形式数据的处理,这是众所周知的。(例如,参照非专利文献1)
而且,在应用程序中,存在树形式的表现比表形式的表现更合适的情况。特别是近几年作为内部网和互联网等的应用程序的数据标准,采用树型数据结构的XML正在普及。(对于XML的详细情况,例如参照非专利文献2)
然而,树型数据结构的处理,例如,树形式数据的检索一般效率非常不好。该效率不好的第1理由在于,因为数据分散存在于各处的节点,所以很难立即确定数据应存在的地点。在RDB中,例如,“年龄”这一数据只存储在某个表格的“年龄”这一项目中。但是,在树型数据结构中,因为保持“年龄”这一数据的节点分散在各处,所以,一般若不检查整个树型数据结构,就无法检索该数据。
效率不好的第2理由在于,为了表现检索的结果而花费时间。若要表现检索命中的节点群,也必须屡次表现相当于该节点的子孙的节点,但是,由于与RDBMS不同的数据结构是非定型的,因此,为了表现子孙节点而花费时间。
因此,为了发挥作为数据库的主流的RDB的优点,目前提出了在将树型数据结构实现数据库化时,使树形式数据RDB化的方法(例如,参照专利文献1)。在RDB中,数据被分解成表格(表)来保持。由此,要使实际的树形式数据RDB化,就必须将树形式数据塞进表格中。但是,为了处理各种树型数据结构,必须针对每个结构个别地将数据塞进表格并进行系统设计。从而,基于RDB的系统构筑是非常花费时间的工作。
对此,还提出了将树形式数据、特别是XML数据以原有形式实现数据库化的方法。在树型数据结构的情况下,由于可以在一个节点上悬挂子孙节点,因此可以实现各种各样的表现,所以可以大大减少系统设计的时间。从而,将处理XML等树结构的技术作为核心来处理树结构数据的需求正在高涨。
将XML数据以原有形式实现数据库化的方法的一例的做法是取出记入在树结构中的数据的拷贝,例如,若为“年龄”这一项目,则另外保持“年龄”的检索用索引数据(例如,参照专利文献2)。由此,可以充分利用可以在数据本身上附加属性这一XML数据的优点,并且可以直接存储使用标记来表现的各项目的关系结构。
【专利文献1】:日本专利公开2003-248615号公报
【专利文献2】:日本专利公开2001-195406号公报
【非专利文献1】:株式会社SEC、“Karearea WhitePaper”、[online]、[平成16年2月19日检索]、因特网<URL:http://www.sec.co.jp/products/karearea/>
【非专利文献2】:W3C、“Extensible Markup Language(XML)1.0(ThirdEdition)”、[online]、2004年2月4日、[平成16年2月19日检索]、因特网<URL:http://www.w3.org/TR/2004/REC-xml-20040204/>
发明内容
发明所要解决的技术问题
但是,在另外保持检索用索引数据的做法中,至少双重保持数据,并且,
需要制作索引的成本以及用于存储索引的数据区域,从而在保持大规模数据方面不利。
实际上,即使利用这样的机制实际进行检索而确定了节点,为了表现该节点也花费时间。而且,该机制不能用于将节点间的关系作为问题的检索(例如,祖先包含“60岁”的“年龄”、而子孙包含“1岁”的“年龄”的树的抽出)。
这样的现有技术的根本问题在于,只着眼于各个数据,通过以指针连接蓄积了数据的节点之间来表现树型数据结构,因此,不能有效跟踪数据间的关系,例如,父子、祖先、子孙、兄弟(同胞)、世代等的关系。换言之,指针因其值不定,所以只能用于表示数据的存储地址这样的用途,不能直接表现节点间的关系。
于是,本发明的目的在于,提供一种在可以有效率地跟踪树型数据结构的数据间的关系的树型数据结构中,高效率且快速地对树进行检索、合计、排序的方法。而且,本发明的目的在于,提供一种在上述树型数据结构中,对树进行检索、合计、排序的信息处理装置以及检索、合计、排序程序。
解决技术问题的技术方案
本发明的目的通过如下的排列的生成方法达到。
一种排列的生成方法,在具备树型数据结构的数据的计算机中执行,上述树型数据结构:
使子节点比同代的节点优先,将形成固有的连续整数的节点标识符赋予包含根节点的节点;并且
利用第1排列表现节点间的父子关系,该第1排列具有对应于赋予作为根节点以外的节点的各个非根节点的节点标识符的、与各个非根节点相关联的父节点的节点标识符,其特征在于,具备以下步骤:
为了表示分别是包含特定的节点及其子孙节点的1个以上的节点群的部分树,将该特定的节点作为顶点节点,在存储装置中生成存储了其节点标识符的顶点节点列表;
确定上述第1排列中的部分,该上述第1排列中的部分表示由对应于存储在上述顶点节点列表中的节点标识符的各个顶点节点确定的部分树;以及
针对各个上述第1排列中的部分,以使上述部分树的顶点节点为根节点的方式,在上述存储装置中生成标准形式的第2排列,该第2排列利用对应于赋予作为顶点节点以外的节点的各个非顶点节点的节点标识符的、与各个非顶点节点相关联的父节点的节点标识符来表现上述节点间的父子关系。
在理想的实施方式中,确定上述第1排列中的部分的步骤包括以下步骤:从顶点节点的节点标识符所示的上述第1排列中的位置开始,向节点标识符增大的方向,确定上述第1排列中的值比上述顶点节点标识符所示的上述第1排列中的值大的范围。
而且,在理想的实施方式中,上述生成标准形式的第2排列的步骤包括以下步骤:在上述存储装置中确保与上述第1排列的部分相同大小的排列的区域、即被提供了以上述根节点的节点标识符为初始值的连续整数的领域作为其格纳位置号码的区域;以及
将从存储在上述第1排列的部分中的值减去顶点节点的节点标识符后的值,分别存储在上述区域中。
另外,本发明的目的通过如下的检索方法达到。
一种检索方法,在具备树型数据结构的数据的计算机中,从由第1排列确定的树中,检索具有与成为检索关键字的树相同的拓扑的部分树,上述树型数据结构:
使子节点比同代的节点优先,将形成固有的连续整数的节点标识符赋予包含根节点的节点;并且
利用上述第1排列表现节点间的父子关系,该第1排列具有对应于赋予作为根节点以外的节点的各个非根节点的节点标识符的、与各个非根节点相关联的父节点的节点标识符,其特征在于,具备以下步骤:
作为表现成为检索关键字的树的检索关键字排列,在存储装置中生成用于表示节点间的父子关系的、具有对应于赋予作为根节点以外的节点的各个非根节点的节点标识符的、与各个非根节点相关联的父节点的节点标识符的排列;
向上述检索关键字排列中的节点标识符提供偏移,比较提供了上述偏移的节点标识符和基于上述偏移的、上述第1排列中的部分中包含的对应的节点标识符;以及
在上述存储装置中生成顶点节点列表,该顶点节点列表包含通过上述比较全部一致的上述第1排列中的部分的节点标识符,并且表示检索结果。
在理想的实施方式中,具备以下步骤:
在上述节点标识符全部一致时,参照该第1排列中的部分的末尾的下一个节点标识符,判断对应于该节点标识符的节点是否包含在由上述顶点节点确定的部分树中;以及
在不包含在上述部分树中时,在上述存储装置中生成包含通过上述比较全部一致的上述第1排列中的部分的节点标识符的、表示检索结果的顶点节点列表。
而且,在其他的理想的实施方式中,上述节点与表示数据的至少一个实体信息相关联,
上述检索方法还具备以下步骤:分别比较与由通过上述比较全部一致的部分的节点标识符确定的节点相关联的实体信息和与由检索关键字排列的节点标识符确定的节点相关联的实体信息;以及
在上述存储装置中生成包含所有的实体信息与对应于上述关键字排列的实体信息一致的上述第1排列中的部分的节点标识符的、表示检索结果的顶点节点列表。
另外,本发明的目的通过如下的合计方法达到。
一种合计方法,在具备树型数据结构的数据的计算机中对由第1排列确定的树的部分树进行合计,上述树型数据结构:
使子节点比同代的节点优先,将形成固有的连续整数的节点标识符赋予包含根节点的节点;并且
利用第1排列表现节点间的父子关系,该第1排列具有对应于赋予作为根节点以外的节点的各个非根节点的节点标识符的、与各个非根节点相关联的父节点的节点标识符,其特征在于,具备以下步骤:
在上述存储装置中生成存储了上述部分树的顶点节点的顶点节点列表;
确定表示由对应于存储在上述顶点节点列表中的节点标识符的各顶点节点确定的部分树的、上述第1排列中的部分;
针对各个上述第1排列中的部分,以上述部分树的顶点节点为根节点的方式,在上述存储装置中生成标准形式的第2排列,该第2排列利用对应于赋予作为顶点节点以外的节点的各个非顶点节点的节点标识符的、与各个非顶点节点相关联的父节点的节点标识符来表现上述节点间的父子关系;以及
参照上述生成的第2排列,针对第2排列的每个类别,对所生成的排列数进行计数,并使排列数与上述第2排列的类别相关联地存储在上述存储装置中。
另外,本发明的目的通过如下的排序方法达到。
一种排序方法,在具备树型数据结构的数据的计算机中对由第1排列确定的树的部分树的顺序进行排序,上述树型数据结构:
使子节点比同代的节点优先,将形成固有的连续整数的节点标识符赋予包含根节点的节点;并且
利用上述第1排列表现节点间的父子关系,该第1排列具有对应于赋予作为根节点以外的节点的各个非根节点的节点标识符的、与各个非根节点相关联的父节点的节点标识符,其特征在于,具备以下步骤:
在上述存储装置中生成存储了上述部分树的顶点节点的顶点节点列表;
确定表示由对应于存储在上述顶点节点列表中的节点标识符的各顶点节点确定的部分树的、上述第1排列中的部分;
针对各个上述第1排列中的部分,以使上述部分树的顶点节点为根节点的方式,在上述存储装置中生成标准形式的第2排列,该第2排列利用对应于赋予作为顶点节点以外的节点的各个非顶点节点的节点标识符的、与各个非顶点节点相关联的父节点的节点标识符来表现上述节点间的父子关系;以及
参照上述生成的第2排列,按照设定的评价标准,更换上述顶点节点的节点标识符的顺序。
另外,本发明的目的通过如下的在存储装置中构筑树型数据结构的树型数据结构的构筑方法达到。
一种在存储装置中构筑树型数据结构的树型数据结构的构筑方法,其特征在于,具备以下步骤:
使子节点比同代的节点优先,将固有的连续整数赋予包含根节点的节点,作为节点标识符;以及
对于具有子节点的节点,在上述存储装置中生成升序形式的合计排列,该升序形式的合计排列按照上述节点标识符的顺序配置了各个节点标识符和以具有该子节点的节点作为父节点的子节点的出现数的组。
另外,本发明的目的通过如下的排列的生成方法达到。
一种排列的生成方法,在具备树型数据结构的数据的计算机中执行,上述树型数据结构
使子节点比同代的节点优先,将形成固有的连续整数的节点标识符赋予包含根节点的节点,并且
利用第1排列表现节点间的父子关系,该第1排列具有对应于赋予作为根节点以外的节点的各个非根节点的节点标识符的、与各个非根节点相关联的父节点的节点标识符,其特征在于,具备以下步骤:
在上述存储装置中生成升序形式的合计排列,该升序形式的合计排列按照上述第1排列中的节点标识符的顺序配置了上述第1排列中的节点标识符和表示在上述第1排列中节点标识符出现的次数的出现数的组。
在理想的实施方式中,提供一种排列的生成方法,根据上述的合计排列,生成用于表示节点间的父子关系的、具有对应于赋予作为根节点以外的节点的各个非根节点的节点标识符的、与各个非根节点相关联的父节点的节点标识符的第1排列,其特征在于,具备以下步骤:
根据上述合计排列中的出现数,在上述存储装置中确保用于以节点标识符作为存储位置号码的第1排列的区域;
在各个上述合计排列及第1排列中,在初始位置配置第1指针及第2指针;
上述合计排列中,当上述第1指针所示的节点标识符与从上述第2指针所示的存储位置号码减去“1”后的值一致时,将上述第1指针所示的节点标识符在第1排列中作为对应于上述第2指针所示的存储位置号码的值而存储,并且在合计排列中,将上述第1指针所示的出现数减“1”,并使第1指针及第2指针移动,使得其存储位置号码增大;以及
在上述合计排列中,当上述第1指针所示的节点标识符与从上述第2指针所示的存储位置号码减去“1”后的值不一致时,在上述合计排列中,使初始配置在上述第1指针处的第3指针移动,使其存储位置号码减小,确定在合计排列中其出现数最先不为“0”的位置,将该第3指针所示的节点标识符在第1排列中作为对应于上述第2指针所示的存储位置号码的值而存储,并且在合计排列中,将上述第3指针所示的出现数减“1”,并使第2指针移动,使其存储位置号码增大。
而且,在理想的实施方式中,提供一种排列的生成方法,从上述的合计排列生成表示包含顶点节点及其子孙节点的部分树的部分排列,其特征在于,具备以下步骤:
在上述合计排列中,根据上述顶点节点的节点标识符和与该节点标识符相关联的出现数,初始算出至少成为子孙节点的节点的节点标识符;
在上述合计排列中,以使存储位置号码增大的方式,参照节点标识符,判断对应于上述节点标识符的节点是否成为上述顶点节点的子孙节点,并且参照与该合计排列的节点标识符相关联的出现数,更新上述子孙节点的节点标识符;以及
在存储装置中生成被判断成为上述顶点节点的子孙节点的节点的节点标识符和上述关联的出现数的组,作为部分排列。
在更理想的实施方式中还具备以下步骤:在上述部分排列中,从其节点标识符减去开头的节点标识符,在存储装置中生成标准形式的部分排列。
而且,在其他的理想的实施方式中,提供一种检索方法,从由上述的合计排列确定的树中,检索具有与成为检索关键字的树相同的拓扑的部分树,其特征在于,具备以下步骤:
作为表现成为上述检索关键字的树的检索关键字排列,对于具有子节点的节点,在存储装置中生成按照上述节点标识符的顺序配置了各个节点标识符和将该节点作为父节点的子节点的出现数的组的升序形式的合计排列;
向上述检索关键字排列中的节点标识符提供偏移,比较提供了上述偏移的节点标识符和基于上述偏移的、上述合计排列中的部分中包含的对应的节点标识符;以及
在上述存储装置中存储包含通过上述比较全部一致的合计排列的部分的节点标识符和其出现数的、表示检索结果的合计排列。
在理想的实施方式中,上述节点与表示数据的至少1个实体信息相关联,
上述检索方法还具备以下步骤:分别比较与由通过上述比较全部一致的部分的节点标识符确定的节点相关联的实体信息和与由检索关键字排列的节点标识符确定的节点相关联的实体信息;以及
在上述存储装置中生成包含所有的实体信息与对应于上述关键字排列的实体信息一致的、上述合计排列中的部分的节点标识符和其出现数的、表示检索结果的合计排列。
而且,在理想的实施方式中,提供一种合计方法,根据上述的合计排列,对由该合计排列确定的树的部分树进行合计,其特征在于,具备以下步骤:
在上述存储装置中生成存储了上述部分树的顶点节点的顶点节点列表;
在上述合计排列中,根据上述顶点节点的节点标识符和与该节点标识符相关联的出现数,初始算出至少成为子孙节点的节点的节点标识符;
在上述合计排列中,以使存储位置号码增大的方式,参照节点标识符,判断对应于上述节点标识符的节点是否成为上述顶点节点的子孙节点,并且参照与该合计排列的节点标识符相关联的出现数,更新上述子孙节点的节点标识符;
在存储装置中生成被判断成为上述顶点节点的子孙节点的节点的节点标识符和相关联的出现数的组,作为部分排列;
在上述部分排列中,从其节点标识符减去开头的节点标识符,在存储装置中生成标准形式的部分排列;以及
参照上述生成的标准形式的部分排列,针对上述标准形式的部分排列的每个类别,对所生成的排列数计数,将排列数与上述类别相关联地存储在上述存储装置中。
另外,本发明的目的通过如下的计算机程序达到。
一种计算机程序,在具备树型数据结构的数据的计算机中,为了生成表示部分树的排列,可以由上述计算机读出,其中上述树型数据结构:
使子节点比同代的节点优先,将形成固有的连续整数的节点标识符赋予包含根节点的节点;并且
利用第1排列表现节点间的父子关系,该第1排列具有对应于赋予作为根节点以外的节点的各个非根节点的节点标识符的、与各个非根节点相关联的父节点的节点标识符,其特征在于,使上述计算机执行以下步骤:
为了表示分别是包含特定的节点及其子孙节点的1个以上的节点群的部分树,将该特定的节点作为顶点节点,在存储装置中生成存储了其节点标识符的顶点节点列表;
确定上述第1排列中的部分,该上述第1排列中的部分表示由对应于存储在上述顶点节点列表中的节点标识符的各个顶点节点确定的部分树;以及
针对各个上述第1排列中的部分,以使上述部分树的顶点节点为根节点的方式,在上述存储装置中生成标准形式的第2排列,该第2排列利用对应于赋予作为顶点节点以外的节点的各个非顶点节点的节点标识符的、与各个非顶点节点相关联的父节点的节点标识符来表现上述节点间的父子关系。
在理想的实施方式中,在确定上述第1排列中的部分的步骤中,使上述计算机执行以下步骤:
从顶点节点的节点标识符所示的上述第1排列中的位置开始,向节点标识符增大的方向,确定上述第1排列中的值比上述顶点节点标识符所示的上述第1排列中的值大的范围。
而且,在其他理想的实施方式中,在上述生成标准形式的第2排列的步骤中,使上述计算机执行以下步骤:
在上述存储装置中确保与上述第1排列的部分相同大小的排列的区域、即被提供了以上述根节点的节点标识符为初始值的连续整数的领域作为其格纳位置号码的区域;以及
将从存储在上述第1排列的部分中的值减去顶点节点的节点标识符后的值,分别存储在上述区域中。
另外,本发明的目的通过如下的计算机程序达到。
一种计算机程序,为了在具备树型数据结构的数据的计算机中,从由第1排列确定的树中,检索具有与成为检索关键字的树相同的拓扑的部分树,可由上述计算机读出,其中,上述树型数据结构:
使子节点比同代的节点优先,将形成固有的连续整数的节点标识符赋予包含根节点的节点;并且
利用上述第1排列表现节点间的父子关系,该第1排列具有对应于赋予作为根节点以外的节点的各个非根节点的节点标识符的、与各个非根节点相关联的父节点的节点标识符,其特征在于,使上述计算机执行以下步骤:
作为表现成为检索关键字的树的检索关键字排列,在存储装置中生成用于表示节点间的父子关系的、具有对应于赋予作为根节点以外的节点的各个非根节点的节点标识符的、与各个非根节点相关联的父节点的节点标识符的排列;
向上述检索关键字排列中的节点标识符提供偏移,比较提供了上述偏移的节点标识符和基于上述偏移的、上述第1排列中的部分中包含的对应的节点标识符;以及
在上述存储装置中生成顶点节点列表,该顶点节点列表包含通过上述比较全部一致的上述第1排列中的部分的节点标识符,并且表示检索结果。
在理想的实施方式中,使上述计算机执行以下步骤:
在上述节点标识符全部一致时,参照该第1排列中的部分的末尾的下一个节点标识符,判断对应于该节点标识符的节点是否包含在由上述顶点节点确定的部分树中;以及
在不包含在上述部分树中时,在上述存储装置中生成包含通过上述比较全部一致的上述第1排列中的部分的节点标识符的、表示检索结果的顶点节点列表。
而且,在其他理想的实施方式中,上述节点与表示数据的至少一个实体信息相关联,
上述计算机程序还使上述计算机执行以下步骤:
分别比较与由通过上述比较全部一致的部分的节点标识符确定的节点相关联的实体信息和与由检索关键字排列的节点标识符确定的节点相关联的实体信息;以及
在上述存储装置中生成包含所有的实体信息与对应于上述关键字排列的实体信息一致的上述第1排列中的部分的节点标识符的、表示检索结果的顶点节点列表。
另外,本发明的目的通过如下的计算机程序达到。
一种计算机程序,为了在具备树型数据结构的数据的计算机中对由第1排列确定的树的部分树进行合计,可以由上述计算机读出,其中,上述树型数据结构:
使子节点比同代的节点优先,将形成固有的连续整数的节点标识符赋予包含根节点的节点;并且
利用第1排列表现节点间的父子关系,该第1排列具有对应于赋予作为根节点以外的节点的各个非根节点的节点标识符的、与各个非根节点相关联的父节点的节点标识符,其特征在于,使上述计算机执行以下步骤:
在上述存储装置中生成存储了上述部分树的顶点节点的顶点节点列表;
确定表示由对应于存储在上述顶点节点列表中的节点标识符的各顶点节点确定的部分树的、上述第1排列中的部分;
针对各个上述第1排列中的部分,以上述部分树的顶点节点为根节点的方式,在上述存储装置中生成标准形式的第2排列,该第2排列利用对应于赋予作为顶点节点以外的节点的各个非顶点节点的节点标识符的、与各个非顶点节点相关联的父节点的节点标识符来表现上述节点间的父子关系;以及
参照上述生成的第2排列,针对第2排列的每个类别,对所生成的排列数进行计数,并使排列数与上述第2排列的类别相关联地存储在上述存储装置中。
另外,本发明的目的通过如下的计算机程序实现。
一种计算机程序,为了在具备树型数据结构的数据的计算机中对由第1排列确定的树的部分树的顺序进行排序,可以由上述计算机读出,其中,上述树型数据结构:
使子节点比同代的节点优先,将形成固有的连续整数的节点标识符赋予包含根节点的节点;并且
利用上述第1排列表现节点间的父子关系,该第1排列具有对应于赋予作为根节点以外的节点的各个非根节点的节点标识符的、与各个非根节点相关联的父节点的节点标识符,其特征在于,使上述计算机执行以下步骤:
在上述存储装置中生成存储了上述部分树的顶点节点的顶点节点列表;
确定表示由对应于存储在上述顶点节点列表中的节点标识符的各顶点节点确定的部分树的、上述第1排列中的部分;
针对各个上述第1排列中的部分,以使上述部分树的顶点节点为根节点的方式,在上述存储装置中生成标准形式的第2排列,该第2排列利用对应于赋予作为顶点节点以外的节点的各个非顶点节点的节点标识符的、与各个非顶点节点相关联的父节点的节点标识符来表现上述节点间的父子关系;以及
参照上述生成的第2排列,按照设定的评价标准,更换上述顶点节点的节点标识符的顺序。
另外,本发明的目的通过如下的计算机程序达到。
一种计算机程序,为了在计算机的存储装置中构筑树型数据结构,可以由计算机读出,其特征在于,使上述计算机执行以下步骤:
使子节点比同代的节点优先,将固有的连续整数赋予包含根节点的节点,作为节点标识符;以及
对于具有子节点的节点,在上述存储装置中生成升序形式的合计排列,该升序形式的合计排列按照上述节点标识符的顺序配置了各个节点标识符和以具有该子节点的节点作为父节点的子节点的出现数的组。
另外,本发明的目的通过如下的计算机程序达到。
一种计算机程序,在具备树型数据结构的数据的计算机中,为了在该计算机的存储装置中构筑上述树型数据结构,可以由计算机读出并执行,其中,上述树型数据结构:
使子节点比同代的节点优先,将形成固有的连续整数的节点标识符赋予包含根节点的节点;并且
利用第1排列表现节点间的父子关系,该第1排列具有对应于赋予作为根节点以外的节点的各个非根节点的节点标识符的、与各个非根节点相关联的父节点的节点标识符,其特征在于,使上述计算机执行以下步骤:
在上述存储装置中生成升序形式的合计排列,该升序形式的合计排列按照上述第1排列中的节点标识符的顺序配置了上述第1排列中的节点标识符和表示在上述第1排列中节点标识符出现的次数的出现数的组。
在理想的实施方式中,提供一种计算机程序,为了根据上述的合计排列,生成表现节点间的父子关系的、具有对应于赋予作为根节点以外的节点的各个非根节点的节点标识符的、与各个非根节点相关联的父节点的节点标识符的第1排列,可以由计算机读出,其特征在于,使上述计算机执行以下步骤:
根据上述合计排列中的出现数,在上述存储装置中确保用于以节点标识符作为存储位置号码的第1排列的区域;
在各个上述合计排列及第1排列中,在初始位置配置第1指针及第2指针;
上述合计排列中,当上述第1指针所示的节点标识符与从上述第2指针所示的存储位置号码减去“1”后的值一致时,将上述第1指针所示的节点标识符在第1排列中作为对应于上述第2指针所示的存储位置号码的值而存储,并且在合计排列中,将上述第1指针所示的出现数减“1”,并使第1指针及第2指针移动,使得其存储位置号码增大;以及
在上述合计排列中,当上述第1指针所示的节点标识符与从上述第2指针所示的存储位置号码减去“1”后的值不一致时,在上述合计排列中,使初始配置在上述第1指针处的第3指针移动,使其存储位置号码减小,确定在合计排列中其出现数最先不为“0”的位置,将该第3指针所示的节点标识符在第1排列中作为对应于上述第2指针所示的存储位置号码的值而存储,并且在合计排列中,将上述第3指针所示的出现数减“1”,并使第2指针移动,使其存储位置号码增大。
在其他理想的实施方式中,提供一种计算机程序,为了从上述的合计排列生成表示包含顶点节点及其子孙节点的部分树的部分排列,可以由计算机读出,其特征在于,使上述计算机执行以下步骤:
在上述合计排列中,根据上述顶点节点的节点标识符和与该节点标识符相关联的出现数,初始算出至少成为子孙节点的节点的节点标识符;
在上述合计排列中,以使存储位置号码增大的方式,参照节点标识符,判断对应于上述节点标识符的节点是否成为上述顶点节点的子孙节点,并且参照与该合计排列的节点标识符相关联的出现数,更新上述子孙节点的节点标识符;以及
在存储装置中生成被判断成为上述顶点节点的子孙节点的节点的节点标识符和上述关联的出现数的组,作为部分排列。
在更理想的实施方式中,还使上述计算机执行以下步骤:
在上述部分排列中,从其节点标识符减去开头的节点标识符,在存储装置中生成标准形式的部分排列。
在其他更理想的实施方式中,一种计算机程序,为了从由上述的合计排列确定的树中,检索具有与成为检索关键字的树相同的拓扑的部分树,可以由计算机读出,其特征在于,使上述计算机执行以下步骤:
作为表现成为上述检索关键字的树的检索关键字排列,对于具有子节点的节点,在存储装置中生成按照上述节点标识符的顺序配置了各个节点标识符和将该节点作为父节点的子节点的出现数的组的升序形式的合计排列;
向上述检索关键字排列中的节点标识符提供偏移,比较提供了上述偏移的节点标识符和基于上述偏移的、上述合计排列中的部分中包含的对应的节点标识符;以及
在上述存储装置中存储包含通过上述比较全部一致的合计排列的部分的节点标识符和其出现数的、表示检索结果的合计排列。
在理想的实施方式中,上述节点与表示数据的至少1个实体信息相关联,
还使上述计算机执行以下步骤:
分别比较与由通过上述比较全部一致的部分的节点标识符确定的节点相关联的实体信息和与由检索关键字排列的节点标识符确定的节点相关联的实体信息;以及
在上述存储装置中生成包含所有的实体信息与对应于上述关键字排列的实体信息一致的、上述合计排列中的部分的节点标识符和其出现数的、表示检索结果的合计排列。
而且,在其他理想的实施方式中,提供一种计算机程序,为了根据上述的合计排列,对由该合计排列确定的树的部分树进行合计,可以由计算机读出,其特征在于,使上述计算机执行以下步骤:
在上述存储装置中生成存储了上述部分树的顶点节点的顶点节点列表;
在上述合计排列中,根据上述顶点节点的节点标识符和与该节点标识符相关联的出现数,初始算出至少成为子孙节点的节点的节点标识符;
在上述合计排列中,以使存储位置号码增大的方式,参照节点标识符,判断对应于上述节点标识符的节点是否成为上述顶点节点的子孙节点,并且参照与该合计排列的节点标识符相关联的出现数,更新上述子孙节点的节点标识符;
在存储装置中生成被判断成为上述顶点节点的子孙节点的节点的节点标识符和相关联的出现数的组,作为部分排列;
在上述部分排列中,从其节点标识符减去开头的节点标识符,在存储装置中生成标准形式的部分排列;以及
参照上述生成的标准形式的部分排列,针对上述标准形式的部分排列的每个类别,对所生成的排列数计数,将排列数与上述类别相关联地存储在上述存储装置中。
发明效果
根据本发明,其目的在于,提供一种在可以有效率地跟踪树型数据结构的数据间的关系的树型数据结构中,高效率且快速地对树进行检索、合计、排序的方法。而且,根据本发明,可以提供一种在上述树型数据结构中对树进行检索、合计、排序的信息处理装置以及检索、合计、排序程序。
附图说明
[图1]图1是本发明实施方式的处理树型数据结构的计算机系统的框图。
[图2]图2A、B是作为树形式数据的一例的POS数据的说明图,图2A是视觉的表现该树形式数据的数据结构(即,拓扑)以及数据值的例子,图2B是以XML形式表现相同树形式数据的例子。
[图3]图3A~C是使用弧表的树型数据结构的表现形式的例子的说明图。
[图4]图4A~C是基于本发明一个实施例的“子→父”关系的树型数据结构的表现方法的说明图。
[图5]图5是本发明一个实施例的在存储装置上构筑据树型数据结构的方法的流程图。
[图6]图6A~C是利用本发明一个实施例将ID形式的树结构型数据变换为整数连续数形式的树结构型数据的处理说明图。
[图7]图7A~C是利用本发明的另一个实施例将ID形式的树结构型数据变换为整数连续数形式的树结构型数据的处理说明图。
[图8]图8是本发明的一个实施例的基于深度优先的节点定义处理的流程图。
[图9]图9是基于利用本发明的一个实施例生成的“子→父”表现的父子关系的排列说明图。
[图10]图10是基于从图6C所示的深度优先的树型数据结构生成的“父→子”表现的父子关系的排列说明图。
[图11]图11是本发明的一个实施例的基于宽度优先的节点定义处理的流程图。
[图12]图12是基于利用本发明的一个实施例生成的“子→父”表现的父子关系的排列说明图。
[图13]图13是基于从图7C所示的宽度优先的树型数据结构生成的“父→子”表现的父子关系的排列说明图。
[图14]图14A是表示基于宽度优先模式的树型数据结构的图,图14B是针对该树型数据结构表示基于“子→父”表现的父子关系的排列的图。
[图15]图15A是表示顶点节点列表的例子的图,图15B是表示由顶点节点列表确定的部分树群的例子的图。
[图16]图16A是通过检索处理得到的顶点节点列表的例子的图,图16B是表示由顶点节点列表确定的部分树群的例子的图。
[图17]图17A是表示通过合计处理得到的顶点节点列表及合计结果的排列的例子的图,图17B是表示由顶点节点列表确定的部分树群的例子的图。
[图18]图18A是表示利用节点数排序后的顶点节点列表以及对应的节点数的排列的例子的图,图18B是表示由顶点节点列表确定的部分树的例子的图。
[图19]图19A、C分别是表示称为逻辑与运算的对象的顶点节点列表的例子的图,图19B、D分别是表示由顶点节点列表确定的部分树群的例子的图。
[图20]图20A是表示逻辑与运算的结果的顶点节点列表的例子,图20B是由顶点节点列表确定的部分树群的图。
[图21]图21是表示表现某节点的C-P排列、及确定部分树群的顶点节点列表的例子的图。
[图22]图22是表示由图21的顶点节点列表中的顶点节点分别确定的部分树的图。
[图23]图23A、B是表示本实施方式的部分树的标准化的概略情况的图。
[图24]图24是表示本实施方式的部分树的标准化的例子的流程图。
[图25]图25是表示表示部分树的标准化后的部分排列的例子的图。
[图26]图26是用于说明本实施方式的升序形式的排列的例子的图。
[图27]图27是说明升序形式的合计排列与C-P排列间的相互变换的概略情况的图。
[图28]图28是表示本实施方式的从合计排列向C-P排列的变换处理的例子的流程图。
[图29]图29A、B是表示从合计处理向C-P排列的变换处理的具体例的图。
[图30]图30A、B是表示从合计处理向C-P排列的变换处理的具体例的图。
[图31]图31A、B是表示从合计处理向C-P排列的变换处理的具体例的图。
[图32]图32A、B是表示从合计处理向C-P排列的变换处理的具体例的图。
[图33]图33A、B是表示从合计处理向C-P排列的变换处理的具体例的图。
[图34]图34A、B是表示从合计处理向C-P排列的变换处理的具体例的图。
[图35]图35A、B是说明本实施方式的拓扑检索的概略情况的图。
[图36]图36是表示本实施方式的拓扑检索处理的例子的流程图。
[图37]图37A、B是表示拓扑检索处理的具体例的图。
[图38]图38A、B是表示拓扑检索处理的具体例的图。
[图39]图39是表示拓扑检索处理的具体例的图。
[图40]图40A、B是说明本实施方式的第1拓扑合计的概略情况的图。
[图41]图41是表示本实施方式的第1拓扑合计处理的例子的流程图。
[图42]图42是更详细地表示图41步骤4102的流程图。
[图43]图43A~C是表示第1拓扑合计处理的具体例的图。
[图44]图44A、B是说明本实施方式的拓扑排序的概略情况的图。
[图45]图45是表示本实施方式的拓扑排序处理的例子的流程图。
[图46]图46A~E是表示本实施方式的拓扑排序处理的具体例的图。
[图47]图47是表示构筑本发明实施方式的树型数据结构,生成顶点节点列表,生成构筑树型数据结构的各种排列,将其存储在存储器中,并且执行拓扑检索、拓扑合计及拓扑排序处理的信息处理装置的例子的功能框图。
[图48]图48A、B是表示树的例子以及表示该树的升序形式的合计排列的图。
[图49]图49是表示基于升序形式的合计排列确定某顶点节点的部分树的处理的流程图。
[图50]图50A~C是表示确定顶点节点的部分树的处理的具体例的图。
[图51]图51是表示升序形式的合计排列的标准形式的图。
[图52]图52是表示升序形式的合计排列的标准形式的图。
[图53]图53是表示本实施方式的利用升序形式的拓扑检索的处理的流程图。
[图54]图54A、B是表示本实施方式的利用标准形式的拓扑检索的具体例的图。
[图55]图55A、B是表示本实施方式的利用标准形式的拓扑检索的具体例的图。
[图56]图56是表示表示图40A所示的树的升序形式的合计排列、及顶点节点列表的例子的图。
[图57]图57是表示利用升序形式的合计排列的拓扑合计的处理的流程图。
[图58]图58A、B是表示利用升序形式的合计排列的拓扑合计的处理结果的图。
符号说明:
10-计算机系统,12-CPU(中央处理器),14-RAM(随机存取存储器),16-ROM(只读存储器),18-固定存储装置,20-CD-ROM(只读光盘)驱动器,22-I/F(接口),24-输入装置,26-显示装置,4700-信息处理装置,4701-存储部,4702-节点定义部,4703-父子关系定义部,4704-标准化处理部,4705-升序形式处理部,4706-拓扑检索处理部,4707-拓扑合计处理部,4708-拓扑排序处理部
具体实施方式
以下参照附图,说明关于本发明的实施方式。
[计算机系统的构成]
图1是表示本发明实施方式的处理树型数据结构的计算机系统的硬件构成的框图。如图1所示,该计算机系统10与一般的计算机系统具有相同的构成,具备:通过执行程序来控制整个系统及各个构成部分的CPU12、存储工作数据等的RAM(Random Access Memory,随机存取存储器)14、存储程序等的ROM(Read Only Memory,只读存储器)16、硬盘等的固定存储媒体18、用于访问CD-ROM19的CD-ROM驱动器20、与在CD-ROM驱动器20或外部网络(未图示)上连接的外部端子之间设置的接口(I/F)22、由键盘或鼠标等构成的输入装置24、CRT显示装置26。CUP12、RAM14、ROM16、外部存储媒体18、I/F22、输入装置24及显示装置26通过总线28互相连接。
将本实施方式的在存储装置上构筑树型数据结构的程序、以及在存储装置变换树型数据结构的程序收容于CD-ROM19中,可以由CD-ROM驱动器20读取,也可预先存储在ROM16中。而且,也可以暂且将从CD-ROM19中读取的程序存储在外部存储媒体18的规定领域中。或者,上述程序也可以经由网络(未图示)、外部端子及I/F22,从外部供给。
而且,本发明实施方式的信息处理装置,通过使计算机执行在存储装置上构筑树型数据结构的程序以及在存储装置上变换树型数据结构的程序而实现。
[树型数据结构]
图2A是作为树形式数据的一例的POS数据的说明图,图2A是视觉地表现该树形式数据的数据结构(即,拓扑)以及数据值的一例,图2B是以XML形式表现相同的树形式数据的一例。如图2所示,树型数据结构利用从根节点(在本例中为POS数据)开始在各节点分支至叶节点(端点)的节点和弧的组合来表示。各节点与项目名信息、即节点的类型和项目值信息、即节点的值相关联,在图2A、B的例子中,对应于XML形式的<shopName>法国店</shopName>的节点与“shopName(=店名)”的节点类型和“法国店”的节点值相关联。该关联例如可以通过使指向存储有记述节点类型及节点值的信息的节点信息存储领域的指针伴随节点标识符来实现。但是,有必要注意,本发明并不由树型数据结构的实体值的处理方法限定。
对此,为了有效地执行树型数据结构的数据的检索、合计、排序,表现树型数据结构的拓扑的方法、即在存储装置中展开的方法起非常重要的作用。于是,以下主要说明树型数据结构的拓扑。
目前,这样的树型数据结构通过用指针连接蓄积了数据的节点之间来表现。但是,指针表现有指针值没有必然性的缺点。即,有的情况下特定的节点A存储在某地址(例如,100地址)中,其他的情况下相同的节点A存储在其他地址(例如,200地址)中,所以指针值不固定,且指针值本质上不过是表现节点的存储地址。因此,例如在节点按照深度优先的规则用指针连接时,很难按照宽度优先的规则用指针再次连接这些节点。
对此,本发明的发明人着眼于树型数据结构的拓扑可以用弧表记述这一点。所谓弧表是表示节点间的父子关系的弧的表。图3A~C是使用弧表的树型数据结构的表现形式的一例的说明图。在图3A的例子中表示出由赋予了0、10、20、30、40、50、60、70、80、90、100及110的节点标识符(ID)的12个节点构成的树型数据结构。图3A表示树型数据结构的整体。在图3A中,记载在圆形、心形等图形的中央的数字表示节点ID,而记载在箭头和箭头侧的<0,10>等数字对表示弧。另外,节点ID不限于字符串,数值、特别是整数也可。图3B表示从父节点(From-ID)到子节点(To-ID)的弧表,图3C表示由节点ID和节点Type(类型)的对的列表构成的节点列表。另外,为了只表现树型数据结构的目的,没有节点列表也可以。原理上,通过使用这样的弧表,可以不靠指针而直接地记述节点间的关系。
[基于“子→父”关系的表现]
在图3A~C的例子中,基于使子节点对应于父节点的“父→子”关系来记述弧表。因此,由于3个子节点10、60及80存在于1个父节点,例如根节点0,因此,相同节点ID0在弧表的From-ID中出现3次。即,由于即使确定父节点,也不能确定子节点,所以,弧表由要素From-ID的排列和要素To-ID的排列构成。在使用弧表时,某节点出现在From-ID的排列和To-ID的排列这两个排列中。
对此,父子关系也可以由“子→父”关系来表现。此时,节点间的父子关系利用作为根节点以外的节点的各个非根节点和相关联的父节点的组的排列来表现。在利用该“子→父”关系来表现父子关系时,具有在“父→子”关系的情况下没有得到的重要性质。即,因为唯一的父节点必定对应于1个子节点,所以,通过确定子节点,可以立即确定对应于该子节点的唯一的父节点。就是说,弧表实际上只准备要素To-ID的排列就可以。结果,用于存储弧表的存储容量被减削。该存储容量的减削具有存储器的访问次数减少的效果,所以结果可以实现处理的快速化。
图4A~C是基于本发明的一个实施例的“子→父”关系的树型数据结构的表现方法的说明图。图4A是整个树的说明图,图4B是基于“子→父”关系的弧表。图4B的弧表包含根节点的父节点的存储领域,所以作为根节点的父节点,方便地设定“-”。但是,由于对应于根节点的父节点不存在,所以,如图4C所示,也可以从基于“子→父”关系的弧表中除去根节点的父节点的存储领域。这样,在本发明的一个实施例中,通过针对作为根节点以外的节点的各个非根节点使非根节点的父节点与其相关联,来表现节点间的父子关系。于是,通过从“子→父”表现的子节点追寻父节点的列表,可以表现树的拓扑。
基于这样的“子→父”关系的树型数据结构根据本发明的一个实施例,如图5所示,通过使图1所示的计算机系统10执行向包含根节点的节点赋予固有的节点标识符的节点定义步骤501和使赋予非根节点的各父节点的节点标识符与赋予作为根节点以外的节点的各个非根节点的节点标识符相关联的父子关系定义步骤502,在RAM14上构筑。这样,首先利用字符串、浮动小数、整数等任意的识别信息,将节点标识符赋予节点,其次,通过基于“子→父”表现来定义父子关系,从子节点的节点标识符查出父节点的节点标识符(查找),可以表现树的拓扑。
[节点标识符]
根据理想的一个实施例,节点定义步骤使用数值作为节点标识符,更理想的是使用连续的整数,进一步更理想的是使用从0或1开始的整数连续数。由此,可以从节点标识符简单地获得存储有对应于该节点的父节点的节点标识符的地址,所以可以快速地进行从子节点的节点标识符查出父节点的节点标识符的处理。
在向树型数据结构的节点赋予带顺序的号码作为节点标识符、来表现节点间的父子关系时,通过对号码的赋予顺序制定规则,具有容易进行其后的树型数据结构的处理的优点。根据本发明,作为该号码的赋予顺序的规则,利用使子节点比同代的节点优先的深度优先模式和使同代的节点比子节点优先的宽度优先模式。
图6A~C是利用本发明的一个实施例将ID形式的树结构型数据变换为整数连续数形式的树结构型数据的处理说明图。在图6A中示出向各节点赋予了ID号码的树结构型数据;在图6B中示出变换规则;在图6C中示出向各节点赋予了整数连续数(No.)的树结构型数据。本例的变换规则是按深度优先赋予连续号码的规则,具体而言,在存在多个子节点时,赋予长予(最上边的兄)节点最小号码,赋予末子(最下边的弟)大的号码,且使子节点比兄弟节点优先地赋予号码。在本例中,按升序编号,但按降序编号也可以。
另外,图7A~C是利用本发明的另一个实施例将ID形式的树结构型数据变换为整数连续数形式的树结构型数据的处理说明图。在图7A中示出向各节点赋予了ID号码的树结构型数据;在图7B中示出变换规则;在图7C中示出向各节点赋予了整数连续数的树结构型数据。本例的变换规则是按宽度优先赋予连续号码的规则,具体而言,当多个子节点存在时,赋予长子(最上边的兄)节点最小号码,赋予末子(最下边的弟)大的号码,且使兄弟节点比子节点优先地赋予号码。在本例中,按升序编号,但按降序编号也可以。
若这样使用号码作为节点标识符,则可以从节点号码直接地、即按O(1)级(order)查出存储有与该节点有关的存储值的地址。而且,通过将父子关系表现为“子→父”,可以从子节点直接地、即按O(1)级查出父节点。
[深度优先模式]
根据本发明的一个实施例,基于如图6C所示的深度优先的树型数据结构使图1所示的计算机系统10执行:
使子节点比同代节点优先地将固有的连续整数赋予包含根节点的节点的节点定义步骤;和
按照赋予作为根节点以外的节点的各个非根节点的整数的顺序,在存储装置中存储通过排列赋予非根节点的各个父节点的整数而形成的排列的父子关系定义步骤,
由此在存储装置上构筑。由此,节点按深度优先被赋予连续整数,节点间的父子关系利用“子→父”关系的排列来表现。
图8是本发明的一个实施例的基于深度优先的节点定义处理的流程图。该节点定义处理使计算机系统10执行:
步骤801,首次向根节点赋予号码;
步骤802,在已赋予号码的某节点中存在唯一的子节点时,向该子节点赋予被赋予了该某节点的号码的下一个号码;
步骤803,在已赋予号码的某节点中存在多个子节点时,按照该多个子节点间的兄弟关系,从最上边的兄节点到最下边的弟节点赋予号码,使得弟节点在紧接其上的兄节点的所有子孙节点都被赋予号码后再赋予下一个号码。
由此,按深度优先模式在从相同的父节点派生的多个子节点之间定义兄弟关系。
图9是基于利用本发明的一个实施例根据图6C所示的深度优先的树型数据结构生成的“子→父”表现的父子关系的排列说明图。如在该图中作为子树1或子树2所表示的那样,若将按深度优先赋予了连续号码的节点的父子关系,基于“子→父”关系进行排列表现,则可以得到某节点的子孙节点在连续区域出现这样的优异性质。
在本发明的一个实施例中,利用深度优先模式的优异性质,通过从排列中抽出存储有赋予某节点的整数以上的值的连续区域,来确定某节点的所有子孙节点。由此,表示某节点的子孙节点的节点群可以作为排列内的连续块获得。例如,若将连续块的尺寸设为“m”,则用于确定某节点的所有子孙节点的处理速度可以为O(m)级。
如已说明的那样,节点间的父子关系除了“子→父”关系的排列以外,也可以利用“父→子”关系的排列来表现。图10是基于根据图6C所示的深度优先的树型数据结构生成的“父→子”表现的父子关系的排列说明图。因为相对于1个父节点可以存在多个子节点,所以,父子关系排列由用于表示存储有相对各节点的子节点的号码的领域的排列Aggr和存储有子节点的号码的排列P→C这2个排列构成。例如,从排列Aggr的开头开始第2个要素Aggr[1]的值是“3”,这表示相对节点[1]的子节点的号码存储在排列P→C的要素P→C[3]以后。由此可知,节点[0]、即相对根节点的子节点是从排列P→C的开头开始的3个要素,P→C[0]的1、P→C[1]的6以及P→C[2]的8。
说明基于该“父→子”表现的父子关系的排列的求取方法。
(1)节点的号码与排列P→C的最大下标(=11)一致时,属于该节点的子节点不存在。因而,不继续处理。
(2)从同图中用粗体字表示的父节点的号码来求取Aggr值。该Aggr值表示排列P→C的开始点。
(3)求取与用粗体字表示的父节点号码+1对应的Aggr值。该Aggr值-1是排列P→C的结束点。
例如,节点0的子节点的开始点是Aggr[0],即0,而结束点是Aggr[1]-1,即3-1=2。因而,节点0的子节点是排列P→C的第0~2个要素,即1、6及8。
或者,基于“父→子”表现的父子关系可以更简单地用父节点号码的排列与对应的子节点号码的排列这2个排列来表现。但是,为了利用该排列来发现父子关系,必须要检索父节点的号码,即需要log(n)的访问时间,所以效率不好。
[宽度优先模式]
根据本发明的一个实施例,基于如图7所示的宽度优先的树型数据结构使图1所示的计算机系统10执行:
使同代节点比子节点优先地将固有的连续整数赋予包含根节点的节点的节点定义步骤;和
按照赋予作为根节点以外的节点的各个非根节点的整数的顺序,在存储装置中存储通过排列被赋予非根节点的各个父节点的整数而形成的排列的父子关系定义步骤,
由此在存储装置上构筑。由此,节点按宽度优先模式被赋予连续整数,节点间的父子关系利用“子→父”关系的排列来表现。
图11是本发明的一个实施例的基于宽度优先的节点定义处理的流程图。该节点定义处理使计算机系统10执行:
步骤1101,算出各节点是从根节点开始的第几代节点、以及各代包含的节点数;
步骤1102,首次向根节点赋予号码;
步骤1013,如果某代包含的所有节点都被赋予了号码,则直到该某代的下一代不再存在节点之前,对于该下一代包含的所有节点,当父节点不同时,按向该父节点赋予号码的顺序向该节点赋予号码,而当该父节点相同时,在从该父节点派生的多个子节点之间定义兄弟关系,从最上边的兄节点到最下边的弟节点,从之前赋予的号码的下一个号码开始按顺序赋予连续变化的固有整数。
由此,以宽度优先的模式在从相同的父节点派生的多个子节点之间定义兄弟关系。
图12是基于利用本发明的一个实施例从图7所示的宽度优先的树型数据结构生成的“子→父”表现的父子关系的排列说明图。如该图所示,若将按宽度优先赋予了连续号码的节点的父子关系,基于“子→父”关系进行排列表现,则可以获得某节点的子节点出现在连续区域的优异性质。这是因为,若将以宽度优先模式赋予了连续号码的节点的父子关系基于“子→父”关系进行排列表现,则赋予父节点的号码在排列中按顺序(升序或降序)出现。
于是,在本发明的一个实施例中,通过利用宽度优先模式的优异性质从排列中抽出存储有与赋予某节点的整数相同值的连续区域,由此确定某节点的所有子节点。由此,例如可以使用二分搜索等方法检索某节点的子节点,即,可以按O(log(n))级进行检索。
如已说明的那样,节点间的父子关系除了“子→父”关系的排列以外,也可以利用“父→子”关系的排列来表现。图13是基于利用图7C所示的宽度优先的树型数据结构生成的“父→子”表现的父子关系的排列说明图。如图13所示,相对于一个父节点可以存在多个子节点,所以,父子关系的排列由用于表示存储由相对各节点的子节点的号码的区域的排列Aggr和存储有子节点的号码的排列P→C这2个排列构成。例如,从排列Aggr的开头开始第2个要素Aggr[1]的值是“3”,这表示相对节点[1]的子节点的号码存储在排列P→C的要素P→C[3]以后。由此可知,节点[0]、即相对根节点的子节点是从排列P→C的开头开始的3个要素,P→C[0]的1、P→C[1]的2以及P→C[2]的3。
说明基于该“父→子”表现的父子关系的排列的求取方法。
(1)节点的号码与排列P→C的最大下标(=11)一致时,属于该节点的子节点不存在。因而,不继续处理。
(2)从在同图中用粗体字表示的父节点的号码来求取Aggr值。该Aggr值表示排列P→C的开始点。
(3)求取对应于用粗体字表示的父节点号码+1的Aggr值。该Aggr值-1是排列P→C的结束点。
例如,节点0的子节点的开始点是Aggr[0],即0,而结束点是Aggr[1]-1,即3-1=2。因而,节点0的子节点是排列P→C的第0~2个要素,即1、2及3。
[顶点节点及部分树群]
在对树型数据结构的数据进行检索、合计、排序时,在树数据的全体内,有时将特定的部分作为处理的对象,例如检索的对象范围。本发明的发明人提出了通过导入代表包含多个节点的特定部分的1个节点来使各种处理实现效率化的方法。下面,对该方法进行详述。
在具有树型数据结构的树数据中,考虑用离根节点最近的节点的值来表现该节点以及从该节点分支到叶节点(端点)的所有节点。在此,将某节点以及从该节点分支到叶节点的节点群称作部分树。而且,将离上述节点(根节点)最近的节点称作顶点节点。
图14A是表示基于上述宽度优先模式的树型数据结构的图,图14B是针对该树型数据结构表示基于“子→父”表现的父子关系的排列的图。例如,顶点节点[4]包含节点标识符{4,8,9},顶点节点[6]包含节点标识符{6},而且,顶点节点[3]包含节点标识符{3,7,10,11}。将这样由多个顶点节点构成的排列称作顶点节点列表。利用顶点节点列表可以指定多个部分树,将被指定的多个部分树称作部分树群。
以下,将顶点节点列表表示为[a,b,...],在此,“a”、“b”、...是对应于顶点节点的节点标识符。考虑通过展开构成顶点节点列表的各个顶点节点,来求出包含在以该顶点节点作为顶点的部分树中的所有节点的节点标识符。在求出的节点标识符的列表中,当某节点标识符只存在1个时,即,节点标识符不重复出现时,这样的部分树群称作“正规部分树群”。不是这样的部分树群称作“非正规部分树群”。
不管是正规部分树群、还是非正规部分树群,都可以利用顶点节点列表来确定由顶点节点及其子孙节点构成的部分树群。例如,如图15A所示,利用顶点节点列表[4,6,3]来确定如图15B所示的部分树群(部分树{4,8,9}、{6}、{3,7,10,11})。
利用顶点节点列表确定的部分树群可以作为检索、合计、排序、集合运算的对象。
例如,在图15A、B的例子中,若检索包含“心形”节点的部分树,则可获得如图16B所示的部分树群。图16A是表示该部分树群的顶点节点列表。
而且,若合计属于各部分树的节点数,就成为图17B所示。在图17A中,排列1701是顶点节点列表,排列1702是表示属于利用各顶点节点确定的部分树的节点数的排列。
例如,作为排序,可以考虑利用属于各部分树的节点数的排序。图18A中,排列1801是排序后的顶点节点列表,排列1802是表示属于利用顶点节点列表确定的部分树的节点数的排列。而且,图18B是表示按照节点数对部分树进行排序后的状态。
更且,作为多个部分树群之间的集合运算,对逻辑与进行说明。在图14A、B所示的树中,考虑图19B所示的部分树群(在图19A中示出对应的顶点节点列表)和图19D所示的部分树群(在图19C中示出对应的顶点节点列表)的逻辑与。
对图19B中的由节点标识符“4”的顶点节点确定的部分树1901和图19D中的由节点标识符“1”的顶点节点标识符确定的部分树1911进行比较,部分树1901包含在部分树1902中。与图19B中的部分树1902具有包含关系的部分树不存在于图19D所示的部分树群中。而且,对图19B中的由节点标识符“3”的顶点节点确定的部分树1903和图19D中的由节点标识符“7”确定的部分树1913进行比较,部分树1913包含在部分树1903中。结果,表示逻辑与运算结果的顶点节点列表如图20A所示成为[4,7]。图20B是对应与逻辑与运算结果的部分树群。
通过图16A~图20B可以理解,可以利用顶点节点列表(在合计中,除此之外还有与顶点节点列表相同大小的、存储合计结果(节点数)的排列)表示各个处理或运算的结果。
[标准形式]
在本说明书中,将某节点以及从该节点分支到叶节点的部分树的节点及其之间的连接关系称作“拓扑”。例如包括图21所示的树,考虑用基于深度优先模式的“子→父”表现的父子关系的排列(参照符号2101:在图中标记为“C->P”,但在说明书中,以下称作“C-P排列”)来表示该树2100的结构。
考虑由顶点节点列表2102确定的部分树。在图22中,部分树A~C(符号2201~2203)分别相当于由图21的顶点节点列表2102确定的部分树。在这些部分树群中,部分树A(参照符号2201)及部分树B(参照符号2202)在该节点及节点间的连接关系中可以相同,就是说,拓扑可以相同。而且,以顶点节点2102表示的部分树群中可以包含2种拓扑。
这样,为了比较拓扑并判断拓扑的同一性,最好使上述部分树的拓扑标准化来表现。以下,对部分树的拓扑的标准化进行说明。在此,标准化后的拓扑的表现在本说明书称作“标准形式”。
如图23A所示,部分树A(参照符号2201)和部分树B(参照符号2202)明显具有相同的拓扑。但是,若参照C-P排列2103,则表现部分树A的部分的要素为[1,2,2],而表现部分树B的部分的要素为[7,8,8],这些不一致。因此,如果以其顶点节点作为根节点,将部分树表现为基于深度优先模式的“子→父”表现的父子关系的排列(参照图23B的符号2301、2302),则通过比较排列的要素,可以判断双方的拓扑相同。这样,将以其顶点节点作为根节点、将部分树表现为基于深度优先模式的“子→父”表现的父子关系的排列称作标准化。
以下,对于标准化时执行的处理进行说明。标准化大致具备以下步骤:
为了表示分别是包含特定的节点及其子孙节点的1个以上的节点群的部分树,以该特定的节点作为顶点节点,在存储装置中生成存储了其节点标识符的顶点节点列表;
确定表示由对应于存储在顶点节点列表中的节点标识符的各个顶点节点确定的部分树的第1排列中的部分;以及
对于各个上述第1排列中的部分,以使部分树的顶点节点成为根节点的方式,在存储装置中生成节点间的父子关系由对应于赋予作为顶点节点以外的节点的各个非顶点节点的节点标识符的、与各个非顶点节点相关联的父节点的节点标识符表现的、标准形式的第2排列。
在此,第1排列是指C-P排列。
更详细而言,如图24所示,CPU12参照存储在RAM14等存储器中的C-P排列,确定该C-P排列中相当于成为处理对象的部分树的部分排列(步骤2401)。更具体而言,在C-P排列中,将以部分树的顶点节点所示的位置作为初始位置的指针逐个地向下方(节点标识符增大的方向)移动,若指针所示的C-P排列的值比对应于顶点节点的C-P排列的值大,则对应于该指针所示的节点标识符的节点就包含在部分树中(参照图25的符号2501)。
然后,CPU12将部分排列中表示顶点节点的父节点标识符的开头的要素变换为“-1”(步骤2402)。
然后,CPU12算出从第2个以后的要素的值中分别将顶点节点的节点标识符的值作为偏移减去后得到的值,并将其作为该要素的值,存储在部分排列中(步骤2403)。步骤2403的处理在部分排列中对第2个以后的所有要素执行(参照步骤2404、2405)。由此,在图25的例子中,具有[7,8,8]的要素的部分排列通过标准化变换为[-1,0,0]的部分排列(参照符号2510)。CPU12将标准化后的部分排列存储在RAM14等存储器中。
另外,在图24的处理中,也可以省略步骤2402,而在步骤2403中,从部分排列的开头的要素开始,依次从其值中减去顶点节点的节点标识符。
[升序形式]
而且,可以考虑表示各个父节点具有几个子节点的排列。该排列称作升序形式的排列。升序形式的排列具有如下优点。
(1)在升序形式的排列中,由于按父节点的号码顺序以升序排列,因此,从离根节点近的一侧出现父节点的节点标识符,在升序形式互相的比较中,从离根节点更近的一侧开始比较。
若从开头开始比较2个升序形式的排列,则从离根更近的一侧开始比较。
(2)可以有效率地进行比较。
第1是因为,在2个以上的子节点常常附属于1个父节点时,可以缩小排列的大小。
第2是因为,升序的排列容易进行比较。
因此,升序形式适合进行后述的拓扑的排序。特别是,适合于拓扑的排序的最大的理由是因为,升序形式从离根节点近的一侧开始记述,因此更重要的、离根节点近的一侧的特长优先地决定拓扑的大小。
为了在存储装置中构筑上述的升序形式的排列,可以通过具备如下步骤来实现:
使子节点比同代优先地向包含根节点的节点赋予固有的连续整数作为节点标识符;和
对于具有子节点的节点,在存储装置中生成按照节点标识符的顺序配置了各个节点标识符和以具有该子节点的节点为父节点的子节点的出现数的组后形成的升序形式的合计排列。
而且,为了从C-P排列(第1排列)生成升序形式的排列,可以通过具备如下步骤来实现:在存储装置中生成将按照第1排列中的节点标识符的顺序配置了第1排列中的节点标识符和表示在第1排列中节点标识符出现的次数的出现数的组后形成的升序形式的合计排列。
图26是用于说明升序形式的排列的图。在图26中,表示标准化后的部分树(相当于在图22中的部分树C)2601的“子→父”表现的父子关系的排列(标准化后的C-P排列)如符号2602所示。CPU12参照C-P排列的要素,生成由出现值(节点标识符)和出现次数的组构成的合计排列(步骤2611)。在此,在合计排列中,出现值以升序存储。由此,可以形成合计排列2603。对于“出现值=-1”,由于其出现数始终为“1”,因此,CPU12从排列中删除“出现值=-1”和“出现数=1”的组(步骤2622)。这样的处理结果可以获得合计排列2604。CPU12将获得的合计排列2604存储在RAM14等存储器中。
标准化后的C-P排列和升序形式的合计排列一一对应,可以互相变换。从标准化后的C-P排列向合计排列的变换(合计排列的生成)如上所述。对于从合计排列向标准化后的C-P排列的变换(基于合计排列的C-P排列的生成),以下进行叙述。
在图27中,树2701可以使用由出现值和出现次数的组构成的升序形式的合计排列2702来表现。而且,也可以使用C-P排列2703来表现。在从合计排列向C-P排列的变换处理中,引入“主流”这一概念。所谓“主流”是指在C-P排列中,除去开头的要素(相当于节点标识符的存储位置号码=0的要素)外,具有比自己的存储位置号码小“1”的存储值的连续的块。例如,在C-P排列中,用符号2711、2712表示的块成为主流。在树2701中,用虚线表示连接构成用上述符号2711、2712表示的块的节点的弧。而且,在不是具有比自己的存储位置号码小“1”的存储值的节点时,可以考虑是主流的开头节点。
从合计排列向C-P排列(第1排列)的变换大致具备如下步骤:
根据合计排列中的出现数,在存储装置中确保用于把节点标识符作为存储位置号码的第1排列的区域;
在各个合计排列及第1排列中,在初始位置配置第1指针及第2指针;
在合计排列中,在第1指针所示的节点标识符与从上述第2指针所示的存储位置号码减去“1”后的值一致时,将第1指针所示的节点标识符在第1排列中作为对应于第2指针所示的存储位置号码的值存储,并且在合计排列中,将第1指针所示的出现数减去“1”并使第1指针及第2指针移动,以使其存储位置号码增大;以及
在合计排列中,在第1指针所示的节点标识符与从第2指针所示的存储位置号码减去“1”后的值不一致时,在合计排列中,使初始配置在第1指针处的第3指针移动,使其存储位置号码减小,从而在合计排列中首次确定其出现数不为“0”的位置,将该第3指针所示的节点标识符在第1排列中作为对应于第2指针所示的存储位置号码的值而存储,并且在合计排列中,将第3指针所示的出现数减去“1”并使第2指针移动,使得其存储位置号码增大。
图28是表示从合计排列向C-P排列的变换处理的流程图。如图28所示,CPU12在RAM14等存储器上,确保用于C-P排列的区域,作为C-P排列的开头的要素存储“-1”(步骤2801)。然后,CPU12在升序形式的合计排列的开头设置第1指针,并在C-P排列的第2个存储位置(存储位置号码=1)设置第2指针(步骤2802)。图29A是表示步骤2801及2802的处理结束的状态的图。在图29A以及将在以下说明中引用的图中,第1指针标记为“箭头1”,而且,第2指针标记为“箭头2”。而且,后述的第3指针标记为“箭头3”。而且,作为C-P排列的开头的要素存储“-1”。
CPU12判断在C-P排列中从第2指针所示的存储位置号码(节点标识符)减去“1”后的值是否与第1指针所示的合计排列中的出现值相等(步骤2803)。在步骤2803判断为是(Yes)时,CPU12将第1指针所示的合计排列中的出现值存储在C-P排列中第2指针所示的位置(步骤2804)。然后,CPU12将第1指针所示的合计排列中的出现次数减“1”(步骤2805),并将第1指针及第2指针向下方移动1个(即,移动成使得指针所示的存储位置号码增大“1”)(步骤2806)。若第2指针的位置不超过C-P排列的末尾(步骤2807为否(No)),就返回步骤2803。
如图29B所示,第2指针(箭头2)所示的C-P排列的存储位置号码为“1”,若其值减“1”,就与第1指针所示的合计排列中的出现值“0”相等。从而,在步骤2803中判断为是(Yes),第1指针所示的合计排列中的出现值“0”在C-P排列中存储在第2指针所示的位置,并且,在合计排列中,使第1指针所示的出现次数减“1”。其后,第1指针及第2指针分别向下方移动,使得存储位置号码增大“1”。
图30A、B表示图29B所示的向C-P排列的值的存储的后续处理的状况。在这些情况下,也执行步骤2804~2806的处理。
在图31A的情况下,第2指针所示的C-P排列的存储位置号码为“4”,若从该值减“1”,就成为“3”。另一方面,由于第1指针所示的合计排列中的出现值为“7”,因此它们不一致(步骤2803为否(No))。
此时,CPU12生成用于确定合计排列的位置的第3指针,使该指针从第1指针的位置回溯(即,向减小存储位置号码的方向移动),确定最初“出现次数≠0”的位置(步骤2808)。在图31A的例子中,若使第3指针从第1指针的位置向存储位置号码减1的方向移动,则该第3指针所示的出现次数就成为“2”,因此,第3指针在该位置停止。
然后,CPU12将第3指针所示的合计排列中的出现值在C-P排列中存储在第2指针所示的位置(步骤2809)。CPU12将第3指针所示的合计排列中的出现次数减“1”(步骤2810),并将第2指针向下方移动1(即,移动成使得指针所示的存储位置号码增大“1”)(步骤2811)。
在图31B、图32A、B所示的情况下,在步骤2803中判断为否(No),执行步骤2808~2811,在C-P排列中,将第3指针所示的合计排列中的出现值存储在第2指针所示的位置。
在后续的图33A、B所示的情况下,在步骤2803中判断为是(Yes),执行步骤2804~2806,在C-P排列中,将第1指针所示的合计排列中的出现值存储在第2指针所示的位置。而且,在后续的图34A、B所示的情况下,在步骤2803中判断为否(No),执行步骤2808~2811,在C-P排列中,将第3指针所示的合计排列中的出现值存储在第2指针所示的位置。例如,对于图34B,在步骤28082811的处理后,第2指针移动到超过C-P排列的末尾的位置。因此,在此时结束处理。
这样,可以基于升序形式的合计排列,生成标准化后的C-P排列。而且,可以知道升序形式的合计排列和标准化后的C-P排列只是表现形式不同,包含相同的信息(树的结构的信息)。从而,在以下说明的检索、合计、排序处理中,可以采用易于使用的方法进行处理。
[升序形式的部分树]
在上述的升序形式的合计排列中,末端的节点(叶节点)的节点标识符不作为出现值出现。例如,图48A所示的树利用升序形式的合计排列,如图48B所示表示(参照符号4800)。从图48A可以理解,在该树中,叶节点的节点标识符为“3”、“5”、“6”、“10”及“11”。若参照图48B所示的部分排列的出现值的项目,上述节点标识符“3”、“5”、“6”、“10”及“11”就不出现。而且,若参照图48B所示的部分排列就可以理解,出现次数的总和与“所有节点数-1”相等。
以下,对于升序形式的部分树的范围的确定以及升序形式的部分树的标准形式进行说明。
在升序形式的排列中,确定部分树的方法大致具备以下步骤:
在合计排列中,根据顶点节点的节点标识符和与该节点标识符相关联的出现数,初始算出至少为子孙节点的节点的节点标识符;
在合计排列中,参照节点标识符,判断对应于节点标识符的节点是否为顶点节点的子孙节点,并且参照与该合计排列的节点标识符相关联的出现数,更新子孙节点的节点标识符,使得存储位置号码增大;以及
将判断为顶点节点的子孙节点的节点的节点标识符和相关联的出现数的组,作为部分排列在存储装置中生成。
图49是表示根据升序形式的合计排列确定某顶点节点的部分树的处理的流程图。如图49所示,CPU12从存储在RAM14等存储器中的顶点节点列表中取出顶点节点(步骤4901)。然后,CPU12在合计排列中参照所取出的顶点节点所示的出现值及出现次数,算出初始算出值“出现值+出现次数+1”(步骤4902)。该算出值具有以下的含义。
在升序形式的合计排列中,出现值相当于节点标识符,并且,出现次数在C-P排列中表示该节点标识符出现几次。从而可以知道,至少在顶点节点列表中,下一个顶点节点的节点标识符(换而言之,下一个部分树的顶点节点的节点标识符)至少为算出值以上。
另外,在后述的步骤4908中可知,在合计排列中,该出现值的下一行的出现值(节点标识符)不具有该出现值以上的号码时,通过再加上下一行的出现次数,可以修正在该行的算出值。这样,在下一行的出现值不满足算出值时,重复进行在算出值上加上下一行的出现次数、与该下一行的出现值再次比较,在其中发现算出值以上的出现值,由此可以确定部分树。
图50A~C是说明在图48A所示的树中确定某顶点节点(节点标识符=2)的部分树的处理的具体例的图。图50A表示在合计排列中指针指向对应于顶点节点的存储位置号码的状态。在图50A~C中,黑箭头指向对应于顶点节点的存储位置号码。而且,中空的箭头表示后述的移动指针。
在该状态下,上述算出值成为“2+2+1=5”。从而,可知下一个部分树的顶点节点的节点标识符为“5”以上。
然后,CPU12将移动指针配置在顶点节点所示的存储位置号码(步骤4903)。该位置成为移动指针的初始位置。CPU12将移动指针移动到下一个存储位置号码(步骤4904),在合计排列中,参照移动指针所示的出现值(步骤4905)。CPU12比较在步骤4902中算出的算出值和在步骤4903中参照的出现值,若“算出值>出现值”(步骤4906为是(Yes)),则生成表示与移动指针所示的存储位置号码的出现值有关的节点属于顶点节点的信息,并存储在存储器中(步骤4907)。例如,为了存储上述信息,在存储器中可以生成存储了上述出现值的排列,或者,也可以在合计排列中作为上述信息与存储位置号码相关联地设置标志。
其后,CPU12将算出值更新为“原来的算出值+指针所示的出现次数”(步骤4908)。
如图50B所示,在移动指针表示存储位置号码“3”的状态下,其出现值成为“4”。若比较算出值“5”和出现值“4”,由于“算出值5>出现值4”,所以在步骤4904中判断为是(Yes),出现值为“4”、即节点标识符为“4”的节点属于节点标识符为“2”的顶点节点,其信息存储在存储器中。而且,算出值更新为“5(原来的算出值)+1(指针所示的出现次数)=6”。
在步骤4906中进行了节点判断时,与该顶点节点有关的部分树的确定处理结束。如图50C所示,在移动指针表示存储位置号码“4”状态下,其出现值成为“7”。若比较更新后的算出值“6”和出现值“7”,由于“算出值6<出现值7”,所以在步骤4906中判断为否(No)。从而,顶点节点“2”的部分树被确定为以符号5001表示的范围。
接着对于利用升序形式的合计排列表示的树或部分树的标准形式进行说明。这在合计排列中从所有的出现值减去开头的存储位置号码的出现值即可。图51是表示在图50A~C所示的处理中确定的部分树的升序形式的合计排列的图。在此,从升序形式的合计排列(参照符号5101)的各个出现值中减去开头的存储位置号码的出现值“2”(参照符号5102)。由此,可以得到标准化后的升序形式的合计排列(参照符号5103)。
考虑末端节点处的升序形式的合计排列。在图48A所示的例子中,末端节点的节点标识符成为“3”、“5”、“6”、“10”及“11”。从而,若以升序形式的合计排列表示各个末端节点,就成为图51的符号5201。例如,对于出现值“3”(为末端节点),最初的合计排列表示其出现次数为“0(零)”。在此也可以在标准化中,在各个排列中从出现值减出现值,即,使出现值为“0(零)”(参照符号5202)。
[拓扑检索]
在整个树中,或者在由某顶点节点确定的部分树中,考虑找出具有与树或部分树相同的连接形式、即相同拓扑的部分树。例如,在图35B所示的树中,若找出具有与图35A所示的树相同的拓扑的部分树,就可以确定在图35B中用虚线表示的部分树。这称作拓扑检索。在拓扑检索中,其检索结果可以用包含通过检索确定的部分树的顶点节点的节点标识符的排列(顶点节点列表)表示。在图35A、B的例子中,检索结果为“7”。
无论是从整个树发现与作为检索关键字的树相同的拓扑的部分树的情况,还是从由顶点节点列表确定的部分树群中发现与作为检索关键字的树相同的拓扑的部分树的情况,作为算法都相同,所以在以下说明中无区别地处理。
另外,在以下说明中,将作为检索关键字的树还称作检索拓扑。拓扑的检索大致具备以下步骤:
作为表现成为检索关键字的树的检索关键字排列,在存储装置中生成具有用于表现节点间的父子关系的、对应于赋予作为根节点以外的节点的各个非根节点的节点标识符的、与各个非根节点相关联的父节点的节点标识符的排列;
向检索关键字排列中的节点标识符提供偏移,比较提供了偏移的节点标识符和基于偏移的第1排列中的部分中包含的对应的节点标识符;以及
在存储装置中生成包含通过比较全部一致的第1排列中的部分的节点标识符的、表示检索结果的顶点节点列表。
图36是表示本实施方式的拓扑检索处理的流程图。如图36所示,CPU12参照表示存储在RAM14等存储器中的检索拓扑的C-P排列,生成删除了开头要素后的检索关键字排列(步骤3601)。然后,CPU12将加在检索关键字排列的值上的偏移值初始化为“0(零)”(步骤3602),并且,在初始位置配置表示应进行检索关键字排列和成为检索对象的C-P排列之间的比较的位置的指针(步骤3603)。在步骤3603中,指针在C-P排列中初始地位于在偏移值上加“1”后的位置上。例如,如图37A所示,表示非各位置的指针在C-P排列中初始地表示“偏移值(0)+1=1”。因此,如后所述,对检索关键字排列的开头的要素与指针所示的C-P排列的存储位置号码“1”的要素进行比较。
CPU12在检索关键字排列的各个要素上加上偏移值,并且,比较加上了偏移值的检索关键字排列的要素和指针所示的C-P排列的部分中、对应于该检索关键字排列的要素的要素(步骤3604),判断各个要素是否一致(步骤3605)。在步骤3605中判断为是(Yes)时,CPU12参照在成为比较对象的C-P排列的部分的末尾的再下一个、即在末尾的存储位置号码上加“1”后的存储位置号码的要素,判断该要素是否属于与由成为比较对象的C-P排列的部分确定的树相同的块(步骤3606)。具体而言,CPU12检查成为比较对象的C-P排列的部分的末尾的再下一个要素是否为偏移值以上,若为偏移值以上,就判断为属于相同的块。
在步骤3606中判断为否(No)时,将偏移值存储在用于存储检索结果的存储器上生成的顶点节点列表中(步骤3607)。然后,CPU12使指针向下侧移动1,即,使得存储位置号码增大“1”(步骤3608),同时使偏移值增大“1”(步骤3609)。随着指针的移动,在新的C-P排列中,判断成为比较对象的部分是否存在(步骤3601),若存在时(步骤3610中为是(Yes)),就返回步骤3604。
在图37A的例子(偏移值=0的例子)中,因为检索关键字排列的要素和成为比较对象的C-P排列的部分的要素(存储位置号码“1”~“4”的要素)部分不一致,所以,在步骤3605中判断为否(No)。在图37B的例子(偏移值=1的例子)中,检索关键字排列的要素和成为比较对象的C-P排列的部分的要素(存储位置号码“2”~“5”的要素)全部一致。但是,成为比较对象的C-P排列的末尾(存储位置号码=5)的更下一个(存储位置号码=6)的要素为“1”,为偏移“1”以上。从而,在步骤3606中判断为是(Yes)。在图38A、B的例子(分别为偏移值=2,3的例子)中,在步骤3605中也判断为否(No)。在图39的例子(偏移值=7)的例子中,在步骤3605中判断为是(Yes),在步骤3606中判断为否(No),其结果,偏移值“7”存储在顶点节点列表中。另外,在图39的例子中,由于成为比较对象的C-P排列的末尾(存储位置号码=11)的更下一个要素不存在,因此,不必进行块的继续检查(即,下一个要素和偏移的比较)。
[其他拓扑检索]
例如,除拓扑外,也考虑其节点的类型(参照图2A、B说明的节点项目名信息)的一致也作为检索条件的情况。在这种情况下,在上述处理中,在上述步骤3606后,比较对应于已比较的各要素的节点类型,该类型一致时,将偏移值存储在顶点节点列表中即可。
[利用升序形式的合计排列的拓扑检索]
拓扑检索利用升序形式的合计排列也可以实现。基本上,比较表现了成为检索关键字的树(检索拓扑)的、标准化后的升序形式的合计排列和树的升序形式的合计排列。图53是表示本实施方式的利用升序形式的拓扑检索的处理的流程图。图53的处理与图36的处理(使用C-P排列的拓扑检索处理)基本相同。在图36的处理中进行了比较对象部分的下一个要素是否属于与该比较对象部分相同的块的判断(步骤3606),但是,若利用升序形式的合计排列,就可以省略该步骤。
利用升序形式的合计排列的拓扑检索大致具备以下步骤:
作为表现成为检索关键字的树的检索关键字排列,对于具有子节点的节点,在存储装置中生成按照节点标识符的顺序配置了各个节点标识符和以该节点作为父节点的子节点出现数的组后形成的升序形式的合计排列;
向检索关键字排列中的节点标识符提供偏移,比较提供了偏移的节点标识符和基于偏移的合计排列中的部分中包含的对应的节点标识符;以及
在存储装置中存储包含通过比较全部一致的合计排列的部分的节点标识符及其出现数的、表示检索结果的合计排列。
更详细而言,CPU12参照表示存储在RAM14等存储器中的检索拓扑的升序形式的合计排列,生成检索关键字排列(步骤5301)。该检索关键字排列是标准化后的升序形式的合计排列。然后,CPU12在初始位置配置表示应进行检索关键字排列和成为检索对象的合计排列之间的比较的位置的指针(步骤5302)。在步骤5303中,指针配置在合计排列的存储位置号码“0(零)”的位置上。而且,CPU12将加在检索关键字排列的出现值上的偏移值初始化,使得检索关键字排列的开头的出现值及偏移值的和与比较对象部分的开头的出现值一致(步骤5303)。在图54A的情况下,检索关键字排列的开头的出现值为“0(零)”,并且,比较对象部分的开头的出现值为“0(零)”,所以,偏移值也成为“0(零)”。
然后,CPU12比较检索关键字排列和指针所示的合计排列的比较对象部分(步骤5304)。在此,指针所示的位置成为比较对象部分的开头。
例如,如图55A所示,初始地决定比较位置,使得检索关键字排列的存储位置号码“0(零)”与合计排列的存储位置号码“0+0(后者的0(零)为偏移值)”一致。
然后,CPU12在检索关键字排列的各个出现值上加上偏移值,并且,比较加上了偏移值后的检索关键字排列的出现值和出现次数的组与比较对象部分的对应位置的出现值和出现次数的组(步骤5304)。各个要素全部一致时(步骤5305中为是(Yes)),在用于存储检索结果的存储器上所生成的顶点节点列表中存储偏移值(步骤5306)。然后,CPU12使指针向下侧移动1个,即,使得存储位置号码增大“1”(步骤5307),同时增大偏移值,使得检索关键字排列的开头的出现值及偏移值的和与指针移动后的比较对象部分的开头的出现值一致(步骤5308)。随着指针的移动,在新的合计排列中,判断是否存在成为比较对象的部分(步骤5309),若存在时(步骤5309中为是(Yes)),就返回步骤5304。
在图54A的例子(偏移值=0的例子)中,在检索关键字排列中,加上了偏移值的出现值与比较对象部分的出现值一致,但是,出现次数不一致。从而,在步骤5305中判断为否(No)。在图54B的例子(偏移值=1的例子)中,虽然出现值一致,但出现次数不一致。更且,在图55A的例子(偏移值=2的例子)中,出现值不一致。
而在图55B的例子中,出现值及出现次数全部一致。从而,表示检索结果的顶点节点列表成为“7”。
若利用升序形式的合计排列,则可以减少检索关键字排列和比较对象部分之间的比较处理的次数。而且,在比较处理中,可以省略相同块的判断处理(图36的步骤3606)。
[拓扑合计]
接着,对拓扑合计进行说明。所谓拓扑合计,可以考虑以下2种形式。
(1)将拓扑作为次元,在树中求出该拓扑种类的件数。
(2)将拓扑作为次元,在树中求出属于该拓扑种类的指定测度(例如,年龄、体重等)的件数、最大值、最小值、合计值、平均值等。
基本上,若执行(1)的合计(称作“第1拓扑”)合计,则(2)的合计(称作“第2拓扑合计”)、即属于该拓扑种类的测度的运算容易进行。从而,首先,对第1拓扑合计进行说明。
在此,对测度进行简单说明。如参照图2A、B的说明,在实际节点中,项目名信息、即节点的类型和项目值信息、即节点值相关联。上述节点中的项目名信息(节点的类型)及项目值信息(节点的实际值)有时成为上述测度。
[第1拓扑合计]
考虑图40A所示的树。在此,在由顶点节点列表[2,7,8]确定的部分树群中,考虑求出每个拓扑种类的件数。其结果,拓扑4011作为由顶点节点列表[2,8]表示的2个部分节点出现。而且,拓扑4012作为由顶点节点列表[7]表示的1个部分节点出现。从而,得到拓扑4011为2件、拓扑4012为1件的拓扑合计结果(参照图40B)。
拓扑合计大致具备以下步骤:
在存储装置中生成存储了部分树的顶点节点的顶点节点列表;
确定表示由对应于存储在顶点节点列表中的节点标识符的各个顶点节点确定的部分树的第1排列中的部分;
针对各个第1排列中的部分,以部分树的顶点节点成为根节点的方式,在存储装置中生成利用对应于赋予了作为根节点以外的节点的各个非顶点节点的节点标识符的、与各个非顶点节点相关联的父节点的节点标识符来表现了节点间的父子关系的标准形式的第2排列;以及
参照所生成的第2排列,针对第2排列的每个类别,对所生成的排列数进行计数,将排列数与第2排列的类别相关联地在存储存储装置中。
更具体而言,对在本实施方式的信息处理装置的第1拓扑合计处理进行说明。如图41所示,CPU12参照存储在RAM14等存储器中的顶点节点列表,取出其值(顶点节点的节点标识符)(步骤4101)。然后,CPU12在C-P排列中确定由顶点节点指定的部分树的范围(步骤4102)。这例如可以通过图42所示的处理实现。
如图42所示,CPU12首先在C-P排列中参照在顶点节点的节点标识符上加“1”后的存储位置号码所示的要素(步骤4201)。然后,判断所参照的C-P排列中的要素是否为顶点节点的节点标识符以上(步骤4202)。在步骤4202中判断为是(Yes)时,因为相当于与该要素有关的存储位置号码的节点属于由顶点节点确定的部分树,所以,CPU12将该存储位置号码暂时存储在存储器中(步骤4203)。然后,CPU12使C-P排列中的应参照的存储位置号码为“+1”,该存储位置号码只要不超过C-P排列的末尾的存储位置号码(步骤4205中为否(No)),CPU12就重复步骤4202~4204的处理。由此,可以取得对应于属于顶点节点的部分树的节点的节点标识符的存储位置号码。
然后,CPU12在C-P排列中将相当于由顶点节点指定的部分树的部分排列变换为标准形式(步骤4103)。标准变换通过执行图24所示的处理而实现。
CPU12对所有的顶点节点执行步骤4102及4103的处理(参照步骤4104),针对各顶点节点得到标准化后的部分排列。所得到的部分排列存储在RAM14等存储器中即可。然后,CPU12比较标准形式的部分排列,针对每个部分排列,对存在几个进行计数(步骤4105)。该部分排列及计数值成为基于第1拓扑合计的合计结果。
另外,将整个树作为处理对象来实施第1拓扑合计时,可以在顶点节点列表中存储所有的节点标识符。
图43A~C是表示第1拓扑合计处理的例子的图。在各图43A~C中,通过由顶点节点指定的部分树的范围(参照符号4301、4311、4321)的确定、标准形式的部分排列(参照符号4302、4312、4322)的取得,可得到标准形式的部分排列[-1,0,0]存在2件、部分排列[-1,0,1,1,0]仅存在1件的结果。
[第2拓扑合计]
在第2拓扑合计中,可以根据第1拓扑合计的结果,针对分类后的每个部分排列,进一步求出所指定的测度的件数或与所指定的值有关的运算值(最大值、最小值、合计值、平均值等)。
[利用升序形式的合计排列的拓扑合计]
拓扑合计利用升序形式的合计排列也可以实现。图40A所示的树若使用升序形式的合计排列,则可以如图56那样表示。与图40A所示的例子同样,在由顶点节点列表[2,7,8]确定的部分树群中,考虑求出每个拓扑种类的件数。
利用升序形式的合计排列的拓扑合计大致具备以下步骤:
在存储装置中生成存储了部分树的顶点节点的顶点节点列表;
在合计排列中,根据顶点节点的节点标识符和与该节点标识符相关联的出现数,初始算出至少成为子孙节点的节点的节点标识符,
在合计排列中,以存储位置号码增大的方式,参照节点标识符,判断对应于节点标识符的节点是否成为顶点节点的子孙节点,并且参照与该合计排列的节点标识符相关联的出现数,更新子孙节点的节点标识符;
在存储装置中生成被判断成为顶点节点的子孙节点的节点的节点标识符和相关联的出现数的组来作为部分排列;
在部分排列中,从其节点标识符中减去开头的节点标识符,在存储装置中生成标准形式的部分排列;以及
参照所生成的标准形式的部分排列,针对标准形式的部分排列的每个类别,对所生成的排列数进行计数,将排列数与类别相关联地存储在存储装置中。
图57是表示利用升序形式的合计排列的拓扑合计的处理的流程图。如图57所示,CPU12参照存储在RAM14等存储器中的顶点节点列表,取出其值(顶点节点的节点标识符)(步骤5701)。然后,CPU12在成为处理对象的合计排列中,确定所取出的顶点节点的部分树的范围(步骤5702)。这通过执行图49的处理来实现。通过步骤5702,生成表示部分树的范围的合计排列。
CPU12将在步骤5702中得到的、表示部分树的范围的合计排列变换为标准形式(步骤5703)。如参照图51及图52所说明的那样,这可以通过在合计排列中从所有的出现值中减去开头的存储位置号码的出现值来实现。
对所有的顶点节点执行了步骤5701~5703的处理后(参照步骤5704),针对各顶点节点得标准化后的(即,标准形式的)合计排列。
所得到的合计排列存储在RAM14等存储器中即可。然后,CPU12比较合计排列,并针对每个合计排列,对存在几个进行计数(步骤5705)。表示该部分树的范围的合计排列及其计数值成为拓扑合计的合计结果。
在图56的例子中,上述处理的结果如图58A所示,对于各个顶点节点,可以得到表示3个部分树的范围的合计排列。在图58A中,符号5801~5803分别是表示与顶点节点“2”、“7”、“8”有关的部分树的范围的合计排列。从而,可以得到如图58B所示的合计结果。
[拓扑排序]
例如,对于上述合计结果,有时希望按升序或者降序排列件数来表示。即,有时希望根据满足传递律的大小的尺度,生成可以连续访问从最小到最大(或者与其相反)的排列。将这样生成基于上述大小的尺度的排列称作排序。
在图44A所示的树群中,考虑用各顶点节点所示的部分树的节点数,按升序对顶点节点列表进行排序。此时,如图44B所示,排序后的顶点节点列表成为[2,8,7]。这是因为以顶点节点“2”、“8”表示的部分节点的节点数为“3”,而以顶点节点“7”表示的部分节点的节点数为“5”。固然,排序顺序不限于此,也可以采用针对合计说明过的测度。
拓扑排序的处理大致为:
一种对由第1排列确定的树的部分树的顺序进行排序的方法,具备以下步骤:
在存储装置中生成存储了部分树的顶点节点的顶点节点列表;
确定表示由对应于存储在顶点节点列表中的节点标识符的各个顶点节点确定的部分树的第1排列中的部分;
针对各个第1排列中的部分,以部分树的顶点节点成为根节点的方式,在存储装置中生成利用对应于被赋予作为顶点节点以外的节点的各个非顶点节点的节点标识符的、与各个非顶点节点相关联的父节点的节点标识符表现了节点间的父子关系的标准形式的第2排列;以及
参照所生成的第2排列,按照设定的评价标准,更换顶点节点的节点标识符的顺序。
图45是表示本实施方式的拓扑排序的一例的图。如图45所示,本例的拓扑排序处理类似于第1拓扑合计处理,图45的步骤4501~4504与图41的步骤4101~4104相同。从而,在图46A所示的例子(与图43A相同)中,若对顶点节点列表中的所有顶点节点执行步骤4501~4503的处理,则针对顶点节点“2”、“7”及“8”,可以分别得到图46B~D所示的标准形式的排列。若按照图44B所示的排序的大小比较基准(按节点数排序),则如图46E所示,可以得到更换了顶点节点顺序的顶点节点列表。
[信息处理装置]
图47是表示构筑本发明实施方式的树型数据结构,生成顶点节点列表,生成构筑树型数据结构的各种排列,将其存储在存储器中,并且执行拓扑检索、拓扑合计及拓扑排序处理的信息处理装置的例子的功能框图。该信息处理装置4700实际上是通过在图1所示的计算机系统10中安装需要的程序而实现。
如图47所示,信息处理装置4700具有:存储表现树型数据结构的数据、包含顶点节点列表的各种排列的存储部4701;向包含根节点的节点赋予固有的节点标识符,并在存储部3501中存储节点标识符的节点定义部4702;使赋予作为根节点以外的节点的各个非根节点的父节点的节点标识符与赋予各个非根节点的节点标识符相关联,并在存储部4701中存储作为表示该关联的排列的C-P排列的父子关系定义部4703;基于存储部4701中存储的节点标识符及C-P排列,生成表现部分树的标准化后的部分排列的标准化处理部4704;将C-P排列或部分排列变换为升序形式的合计排列的升序形式处理部4705;执行拓扑检索处理的拓扑检索处理部4706;执行拓扑合计处理的拓扑合计处理部4707;执行拓扑排序处理的拓扑排序处理部4708。标准化处理部4704、升序形式处理部4705、拓扑检索处理部4706、拓扑合计处理部4707及拓扑排序处理部4708的处理结果或所生成的排列存储在存储部4701中。
理想地,节点定义部4702使用数值作为节点标识符,更理想地,使用连续的整数作为节点标识符。而且,父子关系定义部4703在存储部4701中存储向各个非根节点赋予的节点标识符和赋予相关联的父节点的节点标识符的组的排列。
而且,若通过来自输入装置(参照图1的符号24)的指示等指定了节点,则顶点节点列表生成部4704在顶点节点列表中存储被指定的节点的节点标识符。而且,按照来自输入装置的指示,拓扑检索处理部4706、拓扑合计处理部4707、拓扑排序处理部4708分别执行上述的拓扑检索处理、拓扑合计处理及拓扑排序处理。此时,按照需要,标准化处理部4704及升序形式处理部4705也执行处理,生成规定的排列,并将该排列存储在存储部4701中。
本发明不限于以上的实施方式,在权利要求书所记载的发明的范围内,可以进行各种变更,这些理所当然也包含在本发明的范围内。

Claims (32)

1.一种排列的生成方法,在具备树型数据结构的数据的计算机中执行,上述树型数据结构:
使子节点比同代的节点优先,将形成固有的连续整数的节点标识符赋予包含根节点的节点;并且
利用第1排列表现节点间的父子关系,该第1排列具有对应于赋予作为根节点以外的节点的各个非根节点的节点标识符的、与各个非根节点相关联的父节点的节点标识符,其特征在于,具备以下步骤:
为了表示分别是包含特定的节点及其子孙节点的1个以上的节点群的部分树,将该特定的节点作为顶点节点,在存储装置中生成存储了其节点标识符的顶点节点列表;
确定上述第1排列中的部分,该上述第1排列中的部分表示由对应于存储在上述顶点节点列表中的节点标识符的各个顶点节点确定的部分树;以及
针对各个上述第1排列中的部分,以使上述部分树的顶点节点为根节点的方式,在上述存储装置中生成标准形式的第2排列,该第2排列利用对应于赋予作为顶点节点以外的节点的各个非顶点节点的节点标识符的、与各个非顶点节点相关联的父节点的节点标识符来表现上述节点间的父子关系。
2.根据权利要求1所述的方法,其特征在于,
确定上述第1排列中的部分的步骤包括以下步骤:从顶点节点的节点标识符所示的上述第1排列中的位置开始,向节点标识符增大的方向,确定上述第1排列中的值比上述顶点节点标识符所示的上述第1排列中的值大的范围。
3.根据权利要求1或2所述的方法,其特征在于,
上述生成标准形式的第2排列的步骤包括以下步骤:在上述存储装置中确保与上述第1排列的部分相同大小的排列的区域、即被提供了以上述根节点的节点标识符为初始值的连续整数的领域作为其格纳位置号码的区域;以及
将从存储在上述第1排列的部分中的值减去顶点节点的节点标识符后的值,分别存储在上述区域中。
4.一种检索方法,在具备树型数据结构的数据的计算机中,从由第1排列确定的树中,检索具有与成为检索关键字的树相同的拓扑的部分树,上述树型数据结构:
使子节点比同代的节点优先,将形成固有的连续整数的节点标识符赋予包含根节点的节点;并且
利用上述第1排列表现节点间的父子关系,该第1排列具有对应于赋予作为根节点以外的节点的各个非根节点的节点标识符的、与各个非根节点相关联的父节点的节点标识符,其特征在于,具备以下步骤:
作为表现成为检索关键字的树的检索关键字排列,在存储装置中生成用于表示节点间的父子关系的、具有对应于赋予作为根节点以外的节点的各个非根节点的节点标识符的、与各个非根节点相关联的父节点的节点标识符的排列;
向上述检索关键字排列中的节点标识符提供偏移,比较提供了上述偏移的节点标识符和基于上述偏移的、上述第1排列中的部分中包含的对应的节点标识符;以及
在上述存储装置中生成顶点节点列表,该顶点节点列表包含通过上述比较全部一致的上述第1排列中的部分的节点标识符,并且表示检索结果。
5.根据权利要求4所述的检索方法,其特征在于,具备以下步骤:
在上述节点标识符全部一致时,参照该第1排列中的部分的末尾的下一个节点标识符,判断对应于该节点标识符的节点是否包含在由上述顶点节点确定的部分树中;以及
在不包含在上述部分树中时,在上述存储装置中生成包含通过上述比较全部一致的上述第1排列中的部分的节点标识符的、表示检索结果的顶点节点列表。
6.根据权利要求4或5所述的检索方法,其特征在于,
上述节点与表示数据的至少一个实体信息相关联,
上述检索方法还具备以下步骤:分别比较与由通过上述比较全部一致的部分的节点标识符确定的节点相关联的实体信息和与由检索关键字排列的节点标识符确定的节点相关联的实体信息;以及
在上述存储装置中生成包含所有的实体信息与对应于上述关键字排列的实体信息一致的上述第1排列中的部分的节点标识符的、表示检索结果的顶点节点列表。
7.一种合计方法,在具备树型数据结构的数据的计算机中对由第1排列确定的树的部分树进行合计,上述树型数据结构:
使子节点比同代的节点优先,将形成固有的连续整数的节点标识符赋予包含根节点的节点;并且
利用第1排列表现节点间的父子关系,该第1排列具有对应于赋予作为根节点以外的节点的各个非根节点的节点标识符的、与各个非根节点相关联的父节点的节点标识符,其特征在于,具备以下步骤:
在上述存储装置中生成存储了上述部分树的顶点节点的顶点节点列表;
确定表示由对应于存储在上述顶点节点列表中的节点标识符的各顶点节点确定的部分树的、上述第1排列中的部分;
针对各个上述第1排列中的部分,以上述部分树的顶点节点为根节点的方式,在上述存储装置中生成标准形式的第2排列,该第2排列利用对应于赋予作为顶点节点以外的节点的各个非顶点节点的节点标识符的、与各个非顶点节点相关联的父节点的节点标识符来表现上述节点间的父子关系;以及
参照上述生成的第2排列,针对第2排列的每个类别,对所生成的排列数进行计数,并使排列数与上述第2排列的类别相关联地存储在上述存储装置中。
8.一种排序方法,在具备树型数据结构的数据的计算机中对由第1排列确定的树的部分树的顺序进行排序,上述树型数据结构:
使子节点比同代的节点优先,将形成固有的连续整数的节点标识符赋予包含根节点的节点;并且
利用上述第1排列表现节点间的父子关系,该第1排列具有对应于赋予作为根节点以外的节点的各个非根节点的节点标识符的、与各个非根节点相关联的父节点的节点标识符,其特征在于,具备以下步骤:
在上述存储装置中生成存储了上述部分树的顶点节点的顶点节点列表;
确定表示由对应于存储在上述顶点节点列表中的节点标识符的各顶点节点确定的部分树的、上述第1排列中的部分;
针对各个上述第1排列中的部分,以使上述部分树的顶点节点为根节点的方式,在上述存储装置中生成标准形式的第2排列,该第2排列利用对应于赋予作为顶点节点以外的节点的各个非顶点节点的节点标识符的、与各个非顶点节点相关联的父节点的节点标识符来表现上述节点间的父子关系;以及
参照上述生成的第2排列,按照设定的评价标准,更换上述顶点节点的节点标识符的顺序。
9.一种在存储装置中构筑树型数据结构的树型数据结构的构筑方法,其特征在于,具备以下步骤:
使子节点比同代的节点优先,将固有的连续整数赋予包含根节点的节点,作为节点标识符;以及
对于具有子节点的节点,在上述存储装置中生成升序形式的合计排列,该升序形式的合计排列按照上述节点标识符的顺序配置了各个节点标识符和以具有该子节点的节点作为父节点的子节点的出现数的组。
10.一种排列的生成方法,在具备树型数据结构的数据的计算机中执行,上述树型数据结构:
使子节点比同代的节点优先,将形成固有的连续整数的节点标识符赋予包含根节点的节点;并且
利用第1排列表现节点间的父子关系,该第1排列具有对应于赋予作为根节点以外的节点的各个非根节点的节点标识符的、与各个非根节点相关联的父节点的节点标识符,其特征在于,具备以下步骤:
在上述存储装置中生成升序形式的合计排列,该升序形式的合计排列按照上述第1排列中的节点标识符的顺序配置了上述第1排列中的节点标识符和表示在上述第1排列中节点标识符出现的次数的出现数的组。
11.一种排列的生成方法,根据权利要求9所述的合计排列,生成用于表示节点间的父子关系的、具有对应于赋予作为根节点以外的节点的各个非根节点的节点标识符的、与各个非根节点相关联的父节点的节点标识符的第1排列,其特征在于,具备以下步骤:
根据上述合计排列中的出现数,在上述存储装置中确保用于以节点标识符作为存储位置号码的第1排列的区域;
在各个上述合计排列及第1排列中,在初始位置配置第1指针及第2指针;
上述合计排列中,当上述第1指针所示的节点标识符与从上述第2指针所示的存储位置号码减去“1”后的值一致时,将上述第1指针所示的节点标识符在第1排列中作为对应于上述第2指针所示的存储位置号码的值而存储,并且在合计排列中,将上述第1指针所示的出现数减“1”,并使第1指针及第2指针移动,使得其存储位置号码增大;以及
在上述合计排列中,当上述第1指针所示的节点标识符与从上述第2指针所示的存储位置号码减去“1”后的值不一致时,在上述合计排列中,使初始配置在上述第1指针处的第3指针移动,使其存储位置号码减小,确定在合计排列中其出现数最先不为“0”的位置,将该第3指针所示的节点标识符在第1排列中作为对应于上述第2指针所示的存储位置号码的值而存储,并且在合计排列中,将上述第3指针所示的出现数减“1”,并使第2指针移动,使其存储位置号码增大。
12.一种排列的生成方法,从权利要求9所述的合计排列生成表示包含顶点节点及其子孙节点的部分树的部分排列,其特征在于,具备以下步骤:
在上述合计排列中,根据上述顶点节点的节点标识符和与该节点标识符相关联的出现数,初始算出至少成为子孙节点的节点的节点标识符;
在上述合计排列中,以使存储位置号码增大的方式,参照节点标识符,判断对应于上述节点标识符的节点是否成为上述顶点节点的子孙节点,并且参照与该合计排列的节点标识符相关联的出现数,更新上述子孙节点的节点标识符;以及
在存储装置中生成被判断成为上述顶点节点的子孙节点的节点的节点标识符和上述关联的出现数的组,作为部分排列。
13.根据权利要求12所述的排列的生成方法,其特征在于,还具备以下步骤:
在上述部分排列中,从其节点标识符减去开头的节点标识符,在存储装置中生成标准形式的部分排列。
14.一种检索方法,从由权利要求9所述的合计排列确定的树中,检索具有与成为检索关键字的树相同的拓扑的部分树,其特征在于,具备以下步骤:
作为表现成为上述检索关键字的树的检索关键字排列,对于具有子节点的节点,在存储装置中生成按照上述节点标识符的顺序配置了各个节点标识符和将该节点作为父节点的子节点的出现数的组的升序形式的合计排列;
向上述检索关键字排列中的节点标识符提供偏移,比较提供了上述偏移的节点标识符和基于上述偏移的、上述合计排列中的部分中包含的对应的节点标识符;以及
在上述存储装置中存储包含通过上述比较全部一致的合计排列的部分的节点标识符和其出现数的、表示检索结果的合计排列。
15.根据权利要求14所述的检索方法,其特征在于,
上述节点与表示数据的至少1个实体信息相关联,
上述检索方法还具备以下步骤:分别比较与由通过上述比较全部一致的部分的节点标识符确定的节点相关联的实体信息和与由检索关键字排列的节点标识符确定的节点相关联的实体信息;以及
在上述存储装置中生成包含所有的实体信息与对应于上述关键字排列的实体信息一致的、上述合计排列中的部分的节点标识符和其出现数的、表示检索结果的合计排列。
16.一种合计方法,根据权利要求9所述的合计排列,对由该合计排列确定的树的部分树进行合计,其特征在于,具备以下步骤:
在上述存储装置中生成存储了上述部分树的顶点节点的顶点节点列表;
在上述合计排列中,根据上述顶点节点的节点标识符和与该节点标识符相关联的出现数,初始算出至少成为子孙节点的节点的节点标识符;
在上述合计排列中,以使存储位置号码增大的方式,参照节点标识符,判断对应于上述节点标识符的节点是否成为上述顶点节点的子孙节点,并且参照与该合计排列的节点标识符相关联的出现数,更新上述子孙节点的节点标识符;
在存储装置中生成被判断成为上述顶点节点的子孙节点的节点的节点标识符和相关联的出现数的组,作为部分排列;
在上述部分排列中,从其节点标识符减去开头的节点标识符,在存储装置中生成标准形式的部分排列;以及
参照上述生成的标准形式的部分排列,针对上述标准形式的部分排列的每个类别,对所生成的排列数计数,将排列数与上述类别相关联地存储在上述存储装置中。
17.一种计算机程序,在具备树型数据结构的数据的计算机中,为了生成表示部分树的排列,可以由上述计算机读出,其中上述树型数据结构:
使子节点比同代的节点优先,将形成固有的连续整数的节点标识符赋予包含根节点的节点;并且
利用第1排列表现节点间的父子关系,该第1排列具有对应于赋予作为根节点以外的节点的各个非根节点的节点标识符的、与各个非根节点相关联的父节点的节点标识符,其特征在于,使上述计算机执行以下步骤:
为了表示分别是包含特定的节点及其子孙节点的1个以上的节点群的部分树,将该特定的节点作为顶点节点,在存储装置中生成存储了其节点标识符的顶点节点列表;
确定上述第1排列中的部分,该上述第1排列中的部分表示由对应于存储在上述顶点节点列表中的节点标识符的各个顶点节点确定的部分树;以及
针对各个上述第1排列中的部分,以使上述部分树的顶点节点为根节点的方式,在上述存储装置中生成标准形式的第2排列,该第2排列利用对应于赋予作为顶点节点以外的节点的各个非顶点节点的节点标识符的、与各个非顶点节点相关联的父节点的节点标识符来表现上述节点间的父子关系。
18.根据权利要求17所述的计算机程序,其特征在于,
在确定上述第1排列中的部分的步骤中,使上述计算机执行以下步骤:
从顶点节点的节点标识符所示的上述第1排列中的位置开始,向节点标识符增大的方向,确定上述第1排列中的值比上述顶点节点标识符所示的上述第1排列中的值大的范围。
19.根据权利要求17或18所述的计算机程序,其特征在于,
在上述生成标准形式的第2排列的步骤中,使上述计算机执行以下步骤:
在上述存储装置中确保与上述第1排列的部分相同大小的排列的区域、即被提供了以上述根节点的节点标识符为初始值的连续整数的领域作为其格纳位置号码的区域;以及
将从存储在上述第1排列的部分中的值减去顶点节点的节点标识符后的值,分别存储在上述区域中。
20.一种计算机程序,为了在具备树型数据结构的数据的计算机中,从由第1排列确定的树中,检索具有与成为检索关键字的树相同的拓扑的部分树,可由上述计算机读出,其中,上述树型数据结构:
使子节点比同代的节点优先,将形成固有的连续整数的节点标识符赋予包含根节点的节点;并且
利用上述第1排列表现节点间的父子关系,该第1排列具有对应于赋予作为根节点以外的节点的各个非根节点的节点标识符的、与各个非根节点相关联的父节点的节点标识符,其特征在于,使上述计算机执行以下步骤:
作为表现成为检索关键字的树的检索关键字排列,在存储装置中生成用于表示节点间的父子关系的、具有对应于赋予作为根节点以外的节点的各个非根节点的节点标识符的、与各个非根节点相关联的父节点的节点标识符的排列;
向上述检索关键字排列中的节点标识符提供偏移,比较提供了上述偏移的节点标识符和基于上述偏移的、上述第1排列中的部分中包含的对应的节点标识符;以及
在上述存储装置中生成顶点节点列表,该顶点节点列表包含通过上述比较全部一致的上述第1排列中的部分的节点标识符,并且表示检索结果。
21.根据权利要求20所述的计算机程序,其特征在于,使上述计算机执行以下步骤:
在上述节点标识符全部一致时,参照该第1排列中的部分的末尾的下一个节点标识符,判断对应于该节点标识符的节点是否包含在由上述顶点节点确定的部分树中;以及
在不包含在上述部分树中时,在上述存储装置中生成包含通过上述比较全部一致的上述第1排列中的部分的节点标识符的、表示检索结果的顶点节点列表。
22.根据权利要求20或21所述的计算机程序,其特征在于,
上述节点与表示数据的至少一个实体信息相关联,
上述计算机程序还使上述计算机执行以下步骤:
分别比较与由通过上述比较全部一致的部分的节点标识符确定的节点相关联的实体信息和与由检索关键字排列的节点标识符确定的节点相关联的实体信息;以及
在上述存储装置中生成包含所有的实体信息与对应于上述关键字排列的实体信息一致的上述第1排列中的部分的节点标识符的、表示检索结果的顶点节点列表。
23.一种计算机程序,为了在具备树型数据结构的数据的计算机中对由第1排列确定的树的部分树进行合计,可以由上述计算机读出,其中,上述树型数据结构:
使子节点比同代的节点优先,将形成固有的连续整数的节点标识符赋予包含根节点的节点;并且
利用第1排列表现节点间的父子关系,该第1排列具有对应于赋予作为根节点以外的节点的各个非根节点的节点标识符的、与各个非根节点相关联的父节点的节点标识符,其特征在于,使上述计算机执行以下步骤:
在上述存储装置中生成存储了上述部分树的顶点节点的顶点节点列表;
确定表示由对应于存储在上述顶点节点列表中的节点标识符的各顶点节点确定的部分树的、上述第1排列中的部分;
针对各个上述第1排列中的部分,以上述部分树的顶点节点为根节点的方式,在上述存储装置中生成标准形式的第2排列,该第2排列利用对应于赋予作为顶点节点以外的节点的各个非顶点节点的节点标识符的、与各个非顶点节点相关联的父节点的节点标识符来表现上述节点间的父子关系;以及
参照上述生成的第2排列,针对第2排列的每个类别,对所生成的排列数进行计数,并使排列数与上述第2排列的类别相关联地存储在上述存储装置中。
24.一种计算机程序,为了在具备树型数据结构的数据的计算机中对由第1排列确定的树的部分树的顺序进行排序,可以由上述计算机读出,其中,上述树型数据结构:
使子节点比同代的节点优先,将形成固有的连续整数的节点标识符赋予包含根节点的节点;并且
利用上述第1排列表现节点间的父子关系,该第1排列具有对应于赋予作为根节点以外的节点的各个非根节点的节点标识符的、与各个非根节点相关联的父节点的节点标识符,其特征在于,使上述计算机执行以下步骤:
在上述存储装置中生成存储了上述部分树的顶点节点的顶点节点列表;
确定表示由对应于存储在上述顶点节点列表中的节点标识符的各顶点节点确定的部分树的、上述第1排列中的部分;
针对各个上述第1排列中的部分,以使上述部分树的顶点节点为根节点的方式,在上述存储装置中生成标准形式的第2排列,该第2排列利用对应于赋予作为顶点节点以外的节点的各个非顶点节点的节点标识符的、与各个非顶点节点相关联的父节点的节点标识符来表现上述节点间的父子关系;以及
参照上述生成的第2排列,按照设定的评价标准,更换上述顶点节点的节点标识符的顺序。
25.一种计算机程序,为了在计算机的存储装置中构筑树型数据结构,可以由计算机读出,其特征在于,使上述计算机执行以下步骤:
使子节点比同代的节点优先,将固有的连续整数赋予包含根节点的节点,作为节点标识符;以及
对于具有子节点的节点,在上述存储装置中生成升序形式的合计排列,该升序形式的合计排列按照上述节点标识符的顺序配置了各个节点标识符和以具有该子节点的节点作为父节点的子节点的出现数的组。
26.一种计算机程序,在具备树型数据结构的数据的计算机中,为了在该计算机的存储装置中构筑上述树型数据结构,可以由计算机读出并执行,其中,上述树型数据结构:
使子节点比同代的节点优先,将形成固有的连续整数的节点标识符赋予包含根节点的节点;并且
利用第1排列表现节点间的父子关系,该第1排列具有对应于赋予作为根节点以外的节点的各个非根节点的节点标识符的、与各个非根节点相关联的父节点的节点标识符,其特征在于,使上述计算机执行以下步骤:
在上述存储装置中生成升序形式的合计排列,该升序形式的合计排列按照上述第1排列中的节点标识符的顺序配置了上述第1排列中的节点标识符和表示在上述第1排列中节点标识符出现的次数的出现数的组。
27.一种计算机程序,为了根据权利要求25所述的合计排列,生成表现节点间的父子关系的、具有对应于赋予作为根节点以外的节点的各个非根节点的节点标识符的、与各个非根节点相关联的父节点的节点标识符的第1排列,可以由计算机读出,其特征在于,使上述计算机执行以下步骤:
根据上述合计排列中的出现数,在上述存储装置中确保用于以节点标识符作为存储位置号码的第1排列的区域;
在各个上述合计排列及第1排列中,在初始位置配置第1指针及第2指针;
上述合计排列中,当上述第1指针所示的节点标识符与从上述第2指针所示的存储位置号码减去“1”后的值一致时,将上述第1指针所示的节点标识符在第1排列中作为对应于上述第2指针所示的存储位置号码的值而存储,并且在合计排列中,将上述第1指针所示的出现数减“1”,并使第1指针及第2指针移动,使得其存储位置号码增大;以及
在上述合计排列中,当上述第1指针所示的节点标识符与从上述第2指针所示的存储位置号码减去“1”后的值不一致时,在上述合计排列中,使初始配置在上述第1指针处的第3指针移动,使其存储位置号码减小,确定在合计排列中其出现数最先不为“0”的位置,将该第3指针所示的节点标识符在第1排列中作为对应于上述第2指针所示的存储位置号码的值而存储,并且在合计排列中,将上述第3指针所示的出现数减“1”,并使第2指针移动,使其存储位置号码增大。
28.一种计算机程序,为了从权利要求25所述的合计排列生成表示包含顶点节点及其子孙节点的部分树的部分排列,可以由计算机读出,其特征在于,使上述计算机执行以下步骤:
在上述合计排列中,根据上述顶点节点的节点标识符和与该节点标识符相关联的出现数,初始算出至少成为子孙节点的节点的节点标识符;
在上述合计排列中,以使存储位置号码增大的方式,参照节点标识符,判断对应于上述节点标识符的节点是否成为上述顶点节点的子孙节点,并且参照与该合计排列的节点标识符相关联的出现数,更新上述子孙节点的节点标识符;以及
在存储装置中生成被判断成为上述顶点节点的子孙节点的节点的节点标识符和上述关联的出现数的组,作为部分排列。
29.根据权利要求28所述的计算机程序,其特征在于,还使上述计算机执行以下步骤:
在上述部分排列中,从其节点标识符减去开头的节点标识符,在存储装置中生成标准形式的部分排列。
30.一种计算机程序,为了从由权利要求25所述的合计排列确定的树中,检索具有与成为检索关键字的树相同的拓扑的部分树,可以由计算机读出,其特征在于,使上述计算机执行以下步骤:
作为表现成为上述检索关键字的树的检索关键字排列,对于具有子节点的节点,在存储装置中生成按照上述节点标识符的顺序配置了各个节点标识符和将该节点作为父节点的子节点的出现数的组的升序形式的合计排列;
向上述检索关键字排列中的节点标识符提供偏移,比较提供了上述偏移的节点标识符和基于上述偏移的、上述合计排列中的部分中包含的对应的节点标识符;以及
在上述存储装置中存储包含通过上述比较全部一致的合计排列的部分的节点标识符和其出现数的、表示检索结果的合计排列。
31.根据权利要求30所述的计算机程序,其特征在于,
上述节点与表示数据的至少1个实体信息相关联,
还使上述计算机执行以下步骤:
分别比较与由通过上述比较全部一致的部分的节点标识符确定的节点相关联的实体信息和与由检索关键字排列的节点标识符确定的节点相关联的实体信息;以及
在上述存储装置中生成包含所有的实体信息与对应于上述关键字排列的实体信息一致的、上述合计排列中的部分的节点标识符和其出现数的、表示检索结果的合计排列。
32.一种计算机程序,为了根据权利要求25所述的合计排列,对由该合计排列确定的树的部分树进行合计,可以由计算机读出,其特征在于,使上述计算机执行以下步骤:
在上述存储装置中生成存储了上述部分树的顶点节点的顶点节点列表;
在上述合计排列中,根据上述顶点节点的节点标识符和与该节点标识符相关联的出现数,初始算出至少成为子孙节点的节点的节点标识符;
在上述合计排列中,以使存储位置号码增大的方式,参照节点标识符,判断对应于上述节点标识符的节点是否成为上述顶点节点的子孙节点,并且参照与该合计排列的节点标识符相关联的出现数,更新上述子孙节点的节点标识符;
在存储装置中生成被判断成为上述顶点节点的子孙节点的节点的节点标识符和相关联的出现数的组,作为部分排列;
在上述部分排列中,从其节点标识符减去开头的节点标识符,在存储装置中生成标准形式的部分排列;以及
参照上述生成的标准形式的部分排列,针对上述标准形式的部分排列的每个类别,对所生成的排列数计数,将排列数与上述类别相关联地存储在上述存储装置中。
CNA200680003147XA 2005-01-25 2006-01-23 树的检索、合计、排序方法、信息处理装置以及树的检索、合计、排序程序 Pending CN101128825A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP016373/2005 2005-01-25
JP2005016373 2005-01-25

Publications (1)

Publication Number Publication Date
CN101128825A true CN101128825A (zh) 2008-02-20

Family

ID=36740299

Family Applications (1)

Application Number Title Priority Date Filing Date
CNA200680003147XA Pending CN101128825A (zh) 2005-01-25 2006-01-23 树的检索、合计、排序方法、信息处理装置以及树的检索、合计、排序程序

Country Status (7)

Country Link
US (1) US7937399B2 (zh)
EP (1) EP1857945A1 (zh)
JP (1) JP4653157B2 (zh)
KR (1) KR20070101288A (zh)
CN (1) CN101128825A (zh)
CA (1) CA2593118A1 (zh)
WO (1) WO2006080268A1 (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102681975A (zh) * 2012-05-10 2012-09-19 江苏省电力公司电力科学研究院 一种基于链表的pqdif文件树形结构比较方法
CN103020273A (zh) * 2012-12-27 2013-04-03 福建榕基软件股份有限公司 树形结构数据的展示及相关索引表生成的方法与装置
CN104487951A (zh) * 2012-05-15 2015-04-01 日本电气株式会社 分布式数据管理设备和分布式数据操作设备
CN109121436A (zh) * 2015-11-25 2019-01-01 蒂米菲尔股份有限公司 增广、探索、和维护项目分层结构的方法
CN110889022A (zh) * 2018-08-17 2020-03-17 迈普通信技术股份有限公司 数据查询方法、装置及电子设备

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8943045B2 (en) * 2009-01-28 2015-01-27 Oracle International Corporation Mechanisms for efficient autocompletion in XML search applications
JP5278535B2 (ja) * 2009-03-19 2013-09-04 富士通株式会社 データベース検索プログラムを記録するコンピュータ読取可能な記憶媒体、データベース検索装置、および、データベース検索方法
EP2256660B1 (en) 2009-05-28 2015-08-12 Sap Se Computer-implemented method, computer system, and computer program product for optimization of evaluation of a policy specification
US8370394B2 (en) * 2009-07-17 2013-02-05 International Business Machines Corporation Parallel processing of data organized in a tree structure
CN102402545B (zh) * 2010-09-14 2015-09-02 腾讯科技(深圳)有限公司 一种存储数据的方法及装置
US8713056B1 (en) 2011-03-30 2014-04-29 Open Text S.A. System, method and computer program product for efficient caching of hierarchical items
US9465523B2 (en) * 2013-06-27 2016-10-11 Sap Se Visual exploration of multidimensional data
US9495418B2 (en) 2013-08-07 2016-11-15 International Business Machines Corporation Scalable acceleration of database query operations
US9830354B2 (en) 2013-08-07 2017-11-28 International Business Machines Corporation Accelerating multiple query processing operations
US9619499B2 (en) * 2013-08-07 2017-04-11 International Business Machines Corporation Hardware implementation of a tournament tree sort algorithm
US9251218B2 (en) 2013-08-07 2016-02-02 International Business Machines Corporation Tunable hardware sort engine for performing composite sorting algorithms
JP6290443B2 (ja) * 2014-10-31 2018-03-07 株式会社東芝 通信制御装置、通信制御方法およびプログラム
US10310813B2 (en) 2014-12-29 2019-06-04 International Business Machines Corporation Hardware implementation of a tournament tree sort algorithm using an external memory
US9411706B1 (en) * 2015-09-30 2016-08-09 Semmle Limited Suggesting candidate removable software dependencies
CN105930514B (zh) * 2016-05-16 2019-05-24 珠海格力电器股份有限公司 配套关系检索方法和系统
CN113574516A (zh) * 2020-02-26 2021-10-29 华为技术有限公司 用于将多个文件系统的快照编入索引的设备及方法
US11734243B2 (en) * 2021-11-04 2023-08-22 Google Llc Sparse mapping of hierarchical subset

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS648448A (en) 1987-07-01 1989-01-12 Hitachi Ltd Expression system for tree structure data
JP2789618B2 (ja) 1988-11-30 1998-08-20 富士ゼロックス株式会社 木構造図作成システム
JPH10240741A (ja) 1997-02-28 1998-09-11 Nippon Telegr & Teleph Corp <Ntt> 木構造型データの管理方法
US6301583B1 (en) * 1997-05-16 2001-10-09 Paul Zellweger Method and apparatus for generating data files for an applet-based content menu using an open hierarchical data structure
US6029170A (en) * 1997-11-25 2000-02-22 International Business Machines Corporation Hybrid tree array data structure and method
US6397214B1 (en) * 1998-11-03 2002-05-28 Computer Associates Think, Inc. Method and apparatus for instantiating records with missing data
US6381605B1 (en) * 1999-05-29 2002-04-30 Oracle Corporation Heirarchical indexing of multi-attribute data by sorting, dividing and storing subsets
JP2000348038A (ja) * 1999-06-02 2000-12-15 Fujitsu Ltd 半構造データベースのためのデータ格納装置および方法
JP2001167087A (ja) * 1999-12-14 2001-06-22 Fujitsu Ltd 構造化文書検索装置,構造化文書検索方法,構造化文書検索用プログラム記録媒体および構造化文書検索用インデックス作成方法
US6981040B1 (en) * 1999-12-28 2005-12-27 Utopy, Inc. Automatic, personalized online information and product services
JP2001195406A (ja) 2000-01-06 2001-07-19 Media Fusion Co Ltd データベース管理システム
JP3513562B2 (ja) * 2000-04-20 2004-03-31 インターナショナル・ビジネス・マシーンズ・コーポレーション 形状解析システム、3次元形状モデルの差分検出システム、類似形状検索システム、形状解析方法及び記憶媒体
JP4165086B2 (ja) 2002-02-25 2008-10-15 日本電気株式会社 Xmlデータのrdbへの格納装置及び方法、rdbからのxmlデータの取得装置及び方法並びにプログラム
WO2005088479A1 (ja) * 2004-03-16 2005-09-22 Turbo Data Laboratories Inc. ツリー型データ構造を取り扱う方法、情報処理装置、及び、プログラム
EP1764710A4 (en) * 2004-06-03 2009-03-18 Turbo Data Lab Inc LAYOUT GENERATION PROCESS, INFORMATION PROCESSING DEVICE AND PROGRAM
JP4681555B2 (ja) * 2004-06-23 2011-05-11 株式会社ターボデータラボラトリー ノード挿入方法、情報処理装置、および、ノード挿入プログラム
US20060053122A1 (en) * 2004-09-09 2006-03-09 Korn Philip R Method for matching XML twigs using index structures and relational query processors
EP1811383A1 (en) * 2004-10-01 2007-07-25 Turbo Data Laboratories, Inc. Arrangement generation method and arrangement generation program
WO2007020850A1 (ja) * 2005-08-12 2007-02-22 Turbo Data Laboratories Inc. 情報処理方法、情報処理装置および情報処理プログラム

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102681975A (zh) * 2012-05-10 2012-09-19 江苏省电力公司电力科学研究院 一种基于链表的pqdif文件树形结构比较方法
CN102681975B (zh) * 2012-05-10 2013-06-19 江苏省电力公司电力科学研究院 一种基于链表的pqdif文件树形结构比较方法
CN104487951A (zh) * 2012-05-15 2015-04-01 日本电气株式会社 分布式数据管理设备和分布式数据操作设备
CN104487951B (zh) * 2012-05-15 2017-09-22 日本电气株式会社 分布式数据管理设备和分布式数据操作设备
US10073857B2 (en) 2012-05-15 2018-09-11 Nec Corporation Distributed data management device and distributed data operation device
CN103020273A (zh) * 2012-12-27 2013-04-03 福建榕基软件股份有限公司 树形结构数据的展示及相关索引表生成的方法与装置
CN109121436A (zh) * 2015-11-25 2019-01-01 蒂米菲尔股份有限公司 增广、探索、和维护项目分层结构的方法
CN109121436B (zh) * 2015-11-25 2022-06-21 蒂米菲尔股份有限公司 增广、探索、和维护项目分层结构的方法
CN110889022A (zh) * 2018-08-17 2020-03-17 迈普通信技术股份有限公司 数据查询方法、装置及电子设备

Also Published As

Publication number Publication date
JPWO2006080268A1 (ja) 2008-08-07
WO2006080268A1 (ja) 2006-08-03
CA2593118A1 (en) 2006-08-03
EP1857945A1 (en) 2007-11-21
WO2006080268A9 (ja) 2007-06-14
US20090106194A1 (en) 2009-04-23
KR20070101288A (ko) 2007-10-16
JP4653157B2 (ja) 2011-03-16
US7937399B2 (en) 2011-05-03

Similar Documents

Publication Publication Date Title
CN101128825A (zh) 树的检索、合计、排序方法、信息处理装置以及树的检索、合计、排序程序
CN101180623A (zh) 数组的生成方法、信息处理装置以及程序
JP4796970B2 (ja) ツリーデータの検索・集計・ソート方法及びプログラム
US7627604B2 (en) Method for handling tree-type data structure, information processing device, and program
US6889223B2 (en) Apparatus, method, and program for retrieving structured documents
JP3959027B2 (ja) 情報システムのためのデータ構造
US7499944B2 (en) Method and apparatus for processing a dimension table and deriving a hierarchy therefrom
CN100587673C (zh) 排列的生成方法以及排列生成装置
US20080027980A1 (en) Data Structure And Management System For A Superset Of Relational Databases
US20070005658A1 (en) System, service, and method for automatically discovering universal data objects
CN101639859A (zh) 表分类装置、表分类方法以及表分类程序
EP1997039A1 (en) Data mining by determining patterns in input data
Jindal et al. A generalized tree matching algorithm considering nested lists for web data extraction
CN101576920B (zh) 搜索引擎系统
Park et al. A new query processing technique for XML based on signature
JP4562749B2 (ja) 文書の圧縮格納方法及び装置
CN101297290A (zh) 用于控制关系型数据库系统的方法
Wellenzohn et al. Dynamic interleaving of content and structure for robust indexing of semi-structured hierarchical data (extended version)
CN102436472B (zh) 一种基于关系机制的多类别web对象抽取方法
JP2002202973A (ja) 構造化文書管理装置
Solodovnikova et al. Managing Evolution of Heterogeneous Data Sources of a Data Warehouse.
JP2706021B2 (ja) 構造型データベースにおける検索高速化方法
US9064000B1 (en) Operations over nested relationships using operators
JP3842574B2 (ja) 情報抽出方法および構造化文書管理装置およびプログラム
Kaufmann et al. Database Languages

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication