CN102467535B - 一种树形数据的图形输出方法、装置及*** - Google Patents
一种树形数据的图形输出方法、装置及*** Download PDFInfo
- Publication number
- CN102467535B CN102467535B CN201010542307.6A CN201010542307A CN102467535B CN 102467535 B CN102467535 B CN 102467535B CN 201010542307 A CN201010542307 A CN 201010542307A CN 102467535 B CN102467535 B CN 102467535B
- Authority
- CN
- China
- Prior art keywords
- tree data
- node
- output area
- data node
- described tree
- 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.)
- Active
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Processing Or Creating Images (AREA)
Abstract
本发明适用于计算机技术领域,提供了一种树形数据的图形输出方法、装置及***,所述方法包括:接收树形数据节点输出区域的坐标计算指令,所述指令携带有树形数据;获取所述树形数据中每一个树型数据节点输出区域的位置信息,根据所述位置信息,确定每一个树形数据节点输出区域的坐标;输出包含所述树形数据的树形数据节点输出区域图形。本发明克服了树形数据图形输出区域大小、位置无法定制,不紧凑的问题,使得用户可以简单、方便地定制树形数据的图形输出,使得输出的树形数据更加紧凑,有效地减少了输出的树形数据占用的空间。
Description
技术领域
本发明属于计算机技术领域,尤其涉及一种树形数据的图形输出方法、装置及***。
背景技术
通常树形数据使用类似于Windows资源管理器缩进的列表的展现形式,或采用自然地自顶而下的树状外观,可以直观地表现层级关系、包含、汇总关系等应用场景。目前,使用计算机图形界面进行输出显示树状外观时,是通过工具手动地绘制成图片,写成静态的Html页面,或使用类似Word的***图形的功能进行树形数据的图形界面输出。然而,在企业应用场景中,如ERP***,数据不可预知,需要通过计算机程序动态地完成树形数据的图形绘制和输出,使用现有方法输出的树形数据图形输出区域大小、位置无法定制,不紧凑。
发明内容
本发明实施例的目的在于提供一种树形数据的图形输出方法、装置及***,旨在解决由于在企业应用场景中,数据不可预知,需要通过计算机程序动态地完成树形数据的图形绘制和输出,使用现有方法输出的树形数据图形输出区域大小、位置无法定制,不紧凑的问题。
本发明实施例是这样实现的,一种树形数据的图形输出方法,所述方法包括下述步骤:
接收树形数据节点输出区域的坐标计算指令,所述指令携带有树形数据;
获取所述树形数据中每一个树型数据节点输出区域的位置信息,根据所述位置信息,确定每一个树形数据节点输出区域的坐标,所述位置信息为树形数据节点输出区域的高度、宽度、与兄弟节点输出区域的间距,以及与父节点输出区域的层间距;
输出包含所述树形数据的树形数据节点输出区域图形;
根据所述位置信息,确定每一个树形数据节点输出区域的坐标的步骤具体包括下述步骤:
对所述树形数据进行树的后序遍历,获取树形数据节点输出区域的宽度、以及与兄弟节点输出区域的间距信息,确定该树形数据节点输出区域的横坐标,所述树形数据节点为后序遍历所述树形数据过程中访问的树形数据节点;
当完成对所述树形数据的后序遍历时,对所述树形数据进行树的先序遍历,根据树形数据节点输出区域高度、与父节点输出区域的层间距信息,确定该树形数据节点输出区域的纵坐标;
所述对所述树形数据进行树的后序遍历,获取树形数据节点输出区域的宽度、以及与兄弟节点输出区域的间距信息,确定该树形数据节点输出区域的横坐标的步骤包括步骤:
根据所述输出区域宽度、以及与兄弟节点输出区域的间距信息,确定所述树形数据节点的边界集和输出区域的初始横坐标,所述边界集包括所述树形数据节点的边界,以及所述树形数据节点后代每一层的边界,所述树形数据节点为后序遍历所述树形数据过程中访问的树形数据节点;
当所述树形数据节点存在左兄弟节点时,根据所述树形数据节点的边界集和其左兄弟节点合并体的边界集,将以所述树形数据节点为根节点的子树和以其左兄弟节点为根节点的子树进行合并,更新合并后树形数据节点的横坐标;
确定所述树形数据节点的边界集和输出区域的横坐标的步骤包括步骤:
当所述树形数据节点为叶子节点时,确定所述树形数据节点的边界集,所述边界集仅包含所述树形数据节点的边界,若所述树形数据节点输出区域的宽度为k,则所述树形数据节点输出区域的左边界为0,右边界为k,所述树形数据节点输出区域的横坐标为0;
当所述树形数据节点不是叶子节点时,确定所述树形数据节点的边界集,所述树形数据节点的边界集包括所述树形数据节点的边界,以及所述树形数据节点后代的每一层的边界,若所述树形数据节点输出区域的宽度为k,所述树形数据节点后代的第一层的左边界为l,右边界为r,则(r-l)为所述树形数据节点后代的第一层输出区域的宽度,所述树形数据节点输出区域的横坐标为l+(r-l)/2-k/2,所述树形数据节点输出区域的左边界为l+(r-l)/2-k/2,右边界为l+(r-l)/2+k/2。
本发明实施例的另一目的在于提供一种树形数据的图形输出装置,所述装置包括:
坐标计算指令接收单元,用于接收树形数据节点输出区域的坐标计算指令,所述指令携带有树形数据;
输出区域坐标确定单元,用于获取树形数据中每一个树型数据节点输出区域的位置信息,根据所述位置信息,确定每一个树形数据节点输出区域的坐标,所述位置信息为树形数据节点输出区域的高度、宽度、与兄弟节点输出区域的间距,以及与父节点输出区域的层间距;以及
用于输出包含所述树形数据的树形数据节点输出区域图形的单元,
其中,所述输出区域坐标确定单元具体包括:
横坐标确定单元,用于对树形数据进行树的后序遍历,获取树形数据节点输出区域的宽度、以及与兄弟节点输出区域的间距信息,确定该树形数据节点输出区域的横坐标,所述树形数据节点为后序遍历所述树形数据过程中访问的树形数据节点;以及
纵坐标确定单元,用于当横坐标确定单元完成对所述树形数据的后序遍历时,对所述树形数据进行树的先序遍历,根据树形数据节点输出区域高度、与父节点输出区域的层间距信息,确定该树形数据节点输出区域的纵坐标,所述树形数据节点为先序遍历所述树形数据过程中访问的树形数据节点;
所述横坐标确定单元包括:
初始横坐标确定单元,用于根据树形数据节点的输出区域宽度、以及与兄弟节点输出区域的间距信息,确定该树形数据节点的边界集和输出区域的初始横坐标,所述边界集包括所述树形数据节点的边界,以及所述树形数据节点后代每一层的边界,所述树形数据节点为后序遍历所述树形数据过程中访问的树形数据节点;以及
横坐标更新单元,用于当树形数据节点存在左兄弟节点时,根据所述树形数据节点的边界集和其左兄弟节点合并体的边界集,将以所述树形数据节点为根节点的子树和以其左兄弟节点为根节点的子树进行合并,更新合并后树形数据节点的横坐标,所述树形数据节点为后序遍历所述树形数据过程中访问的树形数据节点;
其中,所述初始横坐标确定单元确定树形数据节点的边界集和输出区域的初始横坐标包括:
当所述树形数据节点为叶子节点时,确定所述树形数据节点的边界集,所述边界集仅包含所述树形数据节点的边界,若所述树形数据节点输出区域的宽度为k,则所述树形数据节点输出区域的左边界为0,右边界为k,所述树形数据节点输出区域的横坐标为0;
当所述树形数据节点不是叶子节点时,确定所述树形数据节点的边界集,所述树形数据节点的边界集包括所述树形数据节点的边界,以及所述树形数据节点后代的每一层的边界,若所述树形数据节点输出区域的宽度为k,所述树形数据节点后代的第一层的左边界为l,右边界为r,则(r-l)为所述树形数据节点后代的第一层输出区域的宽度,所述树形数据节点输出区域的横坐标为l+(r-l)/2-k/2,所述树形数据节点输出区域的左边界为l+(r-l)/2-k/2,右边界为l+(r-l)/2+k/2。
本发明实施例的另一目的在于提供一种树形数据的图形输出***,所述***包括树形数据的图形输出装置,所述装置包括:
坐标计算指令接收单元,用于接收树形数据节点输出区域的坐标计算指令,所述指令携带有树形数据;
输出区域坐标确定单元,用于获取树形数据中每一个树型数据节点输出区域的位置信息,根据所述位置信息,确定每一个树形数据节点输出区域的坐标,所述位置信息为树形数据节点输出区域的高度、宽度、与兄弟节点输出区域的间距,以及与父节点输出区域的层间距;以及
用于输出包含所述树形数据的树形数据节点输出区域图形的单元,
其中,所述输出区域坐标确定单元具体包括:
横坐标确定单元,用于对树形数据进行树的后序遍历,获取树形数据节点输出区域的宽度、以及与兄弟节点输出区域的间距信息,确定该树形数据节点输出区域的横坐标,所述树形数据节点为后序遍历所述树形数据过程中访问的树形数据节点;以及
纵坐标确定单元,用于当横坐标确定单元完成对所述树形数据的后序遍历时,对所述树形数据进行树的先序遍历,根据树形数据节点输出区域高度、与父节点输出区域的层间距信息,确定该树形数据节点输出区域的纵坐标,所述树形数据节点为先序遍历所述树形数据过程中访问的树形数据节点;
所述横坐标确定单元包括:
初始横坐标确定单元,用于根据树形数据节点的输出区域宽度、以及与兄弟节点输出区域的间距信息,确定该树形数据节点的边界集和输出区域的初始横坐标,所述边界集包括所述树形数据节点的边界,以及所述树形数据节点后代每一层的边界,所述树形数据节点为后序遍历所述树形数据过程中访问的树形数据节点;以及
横坐标更新单元,用于当树形数据节点存在左兄弟节点时,根据所述树形数据节点的边界集和其左兄弟节点合并体的边界集,将以所述树形数据节点为根节点的子树和以其左兄弟节点为根节点的子树进行合并,更新合并后树形数据节点的横坐标,所述树形数据节点为后序遍历所述树形数据过程中访问的树形数据节点;
其中,所述初始横坐标确定单元确定树形数据节点的边界集和输出区域的初始横坐标包括:
当所述树形数据节点为叶子节点时,确定所述树形数据节点的边界集,所述边界集仅包含所述树形数据节点的边界,若所述树形数据节点输出区域的宽度为k,则所述树形数据节点输出区域的左边界为0,右边界为k,所述树形数据节点输出区域的横坐标为0;
当所述树形数据节点不是叶子节点时,确定所述树形数据节点的边界集,所述树形数据节点的边界集包括所述树形数据节点的边界,以及所述树形数据节点后代的每一层的边界,若所述树形数据节点输出区域的宽度为k,所述树形数据节点后代的第一层的左边界为l,右边界为r,则(r-l)为所述树形数据节点后代的第一层输出区域的宽度,所述树形数据节点输出区域的横坐标为l+(r-l)/2-k/2,所述树形数据节点输出区域的左边界为l+(r-l)/2-k/2,右边界为l+(r-l)/2+k/2。
本发明实施例在接收到树形数据节点输出区域的坐标计算指令时,获取指令中树形数据每一个树型数据节点的输出区域的位置信息,根据获取的位置信息,从而确定每一个树形数据节点的图形输出区域的坐标,克服了树形数据图形输出区域大小、位置无法定制,不紧凑的问题,使得用户可以简单、方便地定制树形数据的图形输出,使得输出的树形数据更加紧凑,有效地减少了输出的树形数据占用的空间。
附图说明
图1是本发明第一实施例提供的树形数据的图形输出方法的实现流程图;
图2是本发明第二实施例提供的树形数据的图形输出方法的实现流程图;
图3a、图3b、图3c和图3d是本发明第三实施例提供的树形数据的图形输出方法的具体实例图;
图4是本发明第四实施例提供的树形数据的图形输出装置的结构图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明实施例在接收到树形数据节点输出区域的坐标计算指令时,获取指令中树形数据每一个树型数据节点的输出区域的位置信息,根据获取的位置信息,从而确定每一个树形数据节点的图形输出区域的坐标,克服了树形数据图形输出区域大小、位置无法定制,不紧凑的问题,使得用户可以简单、方便地定制树形数据的图形输出,使得输出的树形数据更加紧凑,有效地减少了输出的树形数据占用的空间。
本发明实施例提供了一种树形数据的图形输出方法,所述方法包括下述步骤:
接收树形数据节点输出区域的坐标计算指令,所述指令携带有树形数据;
获取所述树形数据中每一个树型数据节点输出区域的位置信息,根据所述位置信息,确定每一个树形数据节点输出区域的坐标;
输出包含所述树形数据的树形数据节点输出区域图形。
本发明实施例还提供了一种树形数据的图形输出装置,所述装置包括:
坐标计算指令接收单元,用于接收树形数据节点输出区域的坐标计算指令,所述指令携带有树形数据;
输出区域坐标确定单元,用于获取树形数据中每一个树型数据节点输出区域的位置信息,根据所述位置信息,确定每一个树形数据节点输出区域的坐标;以及
用于输出包含所述树形数据的树形数据节点输出区域图形的单元。
本发明实施例还提供了一种树形数据的图形输出***,所述***包括树形数据的图形输出装置,所述装置包括:
坐标计算指令接收单元,用于接收树形数据节点输出区域的坐标计算指令,所述指令携带有树形数据;
输出区域坐标确定单元,用于获取树形数据中每一个树型数据节点输出区域的位置信息,根据所述位置信息,确定每一个树形数据节点输出区域的坐标;以及
用于输出包含所述树形数据的树形数据节点输出区域图形的单元。
本发明实施例在接收到树形数据节点输出区域的坐标计算指令时,获取指令中树形数据每一个树型数据节点的输出区域的位置信息,根据获取的位置信息,从而确定每一个树形数据节点输出区域的坐标,克服了现有树形数据输出无法定制的问题,使得用户可以简单、方便地定制树形数据的输出,输出的树形数据更加紧凑,有效地减少了输出的树形数据占用的空间。
以下结合具体实施例对本发明的具体实现进行详细描述:
实施例一:
图1示出了本发明第一实施例提供的树形数据的图形输出方法的实现流程,详述如下:
S101、接收树形数据节点输出区域的坐标计算指令,该指令携带有树形数据;
在本发明实施例中,数据以树形数据结构的形式进行表示,树形数据中的节点中包括其子节点和父节点的信息,在具体的实施过程中,树形数据节点输出区域的坐标计算指令和树形数据也可以分开接收。
S102、获取步骤S101接收到的指令中树形数据中每一个树型数据节点输出区域的位置信息,根据所述位置信息,确定每一个树形数据节点输出区域的坐标;
在本发明实施例中,可以根据树形数据节点中数据的种类或其ID号获取其输出区域的位置信息,位置信息包括树形数据节点输出区域的高度、宽度、与兄弟节点输出区域的间距,以及与父节点输出区域的层间距,例如,同一部门数据的节点输出区域的高度、宽度相同,不同部门数据的输出区域的高度、宽度都不同,从而对不同部门的数据进行区分,位置信息可以预先以配置文件或数据库表的形式进行存储。
在具体的实施过程中,可以通过对树形数据进行遍历来确定每一个树形数据节点输出区域的坐标,在此不用以限制此发明,例如,采用后序遍历确定树形数据的横坐标,采用先序遍历确定树形数据的纵坐标。
在本发明实施例中,采用后序遍历确定树形数据的横坐标,采用先序遍历确定树形数据的纵坐标过程中,首先对树形数据进行树的后序遍历,获取树形数据节点输出区域的宽度、以及与兄弟节点输出区域的间距信息,确定该树形数据节点输出区域的横坐标,该树形数据节点为后序遍历所述树形数据过程中访问的树形数据节点。
当完成对树形数据的后序遍历时,对树形数据进行树的先序遍历,根据树形数据节点输出区域高度、与父节点输出区域的层间距信息,确定该树形数据节点输出区域的纵坐标,该树形数据节点为先序遍历树形数据过程中访问的树形数据节点。
S103、输出包含树形数据及其树形数据节点输出区域坐标信息。
在本发明实施例中,通过获取树形数据每一个树型数据节点输出区域的位置信息,根据位置信息包括的树形数据节点输出区域的高度、宽度、与兄弟节点输出区域的间距,以及与父节点输出区域的层间距信息,通过遍历确定每一个树形数据节点图形输出区域的坐标。
实施例二:
图2示出了本发明第二实施例提供的树形数据的图形输出方法的实现流程,详述如下:
在步骤S201中,后序遍历树形数据,访问遍历树形数据过程中的树形数据节点;
在本发明实施例中,在接收到树形数据节点输出区域的坐标计算指令后,通过在后序遍历树形数据的过程中,对访问的树形数据节点进行处理。
在步骤S202中,获取该树形数据节点输出区域的位置信息,该树形数据节点为后序遍历树形数据过程中访问的树形数据节点;
在本发明实施例中,可以根据树形数据节点中数据的种类或其ID号获取其输出区域的位置信息,位置信息包括树形数据节点输出区域的高度、宽度、与兄弟节点输出区域的间距,以及与父节点输出区域的层间距,例如,同一部门数据的节点输出区域的高度、宽度相同,不同部门数据的输出区域的高度、宽度都不同,从而对不同部门的数据进行区分,位置信息可以预先以配置文件或数据库表的形式进行存储。
在步骤S203中,检测树形数据节点是否为叶子节点,当为叶子节点时执行步骤S204,否则执行步骤S205;
在本发明实施例中,可以通过检测该树形数据节点是否存在左右子树来确定该节点是否为叶子节点。
在步骤S204中,初始化该树形数据节点的边界集和横坐标,若树形数据节点输出区域的宽度为k,则该树形数据节点输出区域的左边界为0,右边界为k,该树形数据节点输出区域的初始化横坐标为0;
在本发明实施例中,根据步骤S202获取的树形数据节点输出区域的宽度值对该树形数据叶子节点的边界集进行初始化,边界集包括树形数据节点的边界,以及树形数据节点后代每一层的边界,边界包括左边界和右边界,分别表示单个或多个树形数据节点输出区域左边界的横坐标和右边界的横坐标,合并体的边界则为合并体中最左边的树形数据节点输出区域的左边界,以及合并体中最右边的树形数据节点输出区域的右边界。当树形数据节点为叶子节点时,其边界集只包括其自身的边界。
在步骤S205中,初始化该树形数据节点的边界集,其边界集包含每一层子节点的边界和其自身的边界,若该树形数据节点输出区域的宽度为k,该树形数据节点后代的第一层的左边界为l,右边界为r,则(r-l)为该树形数据节点后代的第一层输出区域的宽度,该树形数据节点输出区域的相对横坐标为l+(r-l)/2-k/2,该树形数据节点输出区域的左边界为l+(r-l)/2-k/2,右边界为l+(r-l)/2+k/2。
在步骤S206中,检测该树形数据节点是否存在左兄弟节点,存在左兄弟节点则执行步骤S207,否则执行步骤S209;
在步骤S207中,将该树形数据节点合并到左兄弟节点所在的合并体中;
在本发明实施例中,将该树形数据节点合并到左兄弟节点所在的合并体中,可以有多种方式,可以固定以该树形数据节点为根节点的子树,和其左兄弟节点合并体所在的子树任一子树,移动未固定的子树,在本发明实施例中,固定该树形数据节点的左兄弟节点合并体所在的子树,右移以该树形数据节点为根节点的子树,直到所有的节点都不重合,节点之间的间距按照获取的兄弟节点输出区域的间距进行设置。在具体的实施过程中,可以根据合并的两个子树,或子树与合并体的每一层边界集来计算移动的距离。
在步骤S208中,根据合并过程中,子树的移动方向和移动距离,更新访问的树形数据节点和其左兄弟节点合并后的合并体边界集、以及合并过程中移动的子树中树形数据节点输出区域的横坐标;
在本发明实施例中,将该树形数据节点合并到其左兄弟节点合并体后,将移动子树中所有节点的横坐标加上移动的距离,从而获得该树形数据节点的子节点的新横坐标。
在步骤S209中,检测对树形数据的后序遍历是否完成,是则执行步骤S210,否则执行步骤S201;
在本发明实施例中,检测对树形数据的后序遍历是否完成,可以判断访问的树形数据节点的是否存在父节点,若存在父节点,则后序遍历尚未完成,若不存在父节点,则可以得出访问的树形数据节点为树的根节点,遍历已经完成,从而结束对整棵树的遍历。
在步骤S210中,对树形数据进行树的广度优先的先序遍历,确定先序遍历树形数据过程中树形数据节点输出区域的纵坐标;
在本发明实施例中,对树形数据的深度优先的后序遍历完成后,对该树形数据进行树的广度优先的先序遍历,根据该树形数据每一层中树形数据节点输出区域的高度以及与其父节点输出区域的层间距,再加上已访问树层的高度,从而获得该树形数据节点输出区域的纵坐标。
在步骤S211中,将输出包括树形数据、以及树形数据节点输出区域坐标信息。
在本发明实施例中,通过对树形数据进行深度优先的后序遍历,在遍历过程中初始化访问节点的边界集和横坐标,当检测到其存在左兄弟节点后,将其合并到左兄弟结点的合并体中,更新该节点的边界集和横坐标,从而完成对树形数据输出区域的横坐标的确定,最后通过树的广度优先的先序遍历,根据树形数据每一层的数形数据节点输出区域的高度以及与父节点的层间距,获取该树层的高度,从而确定树形数据节点输出区域的纵坐标。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,所述的程序可以存储于一计算机可读取存储介质中,所述的存储介质,如ROM/RAM、磁盘、光盘等。
实施例三:
根据实施例一、二,图3a、图3b、图3c、图3d示出了本发明第三实施例提供的树形数据的图形输出方法的具体实例,详述如下:
图3a、图3b描述了节点B合并到其兄弟节点A的过程,在本发明实施例中,为了更清楚地说明该过程,假设各个节点的宽度都为100,兄弟节点之间的间距为0,节点输出区域为一矩形区域,节点输出区域的横坐标为矩形区域的左上角的顶点,采用右移的方式实现节点的合并。
图3a描述了节点B加入到其左兄弟节点A之前节点的位置关系,此时,节点A、B的边界集和横坐标如表1第2行所示,其中A的边界集包括其自身的边界,以及其后代每一层的边界。[50,150]为节点A的边界,[0,200]为节点A的第一层后代节点的边界,[50,250]为节点A的第二层后代节点的边界,节点A的横坐标为50。节点B为叶子节点,因此只包括其自身的边界[0,100],横坐标为0,此时节点A、B尚未合并。
图3b描述了节点B加入到其左兄弟节点A后节点的位置关系,此时,节点A、B的边界集和横坐标如表1第3行所示,A的边界集和横坐标不变。由于节点B为叶子节点,其边界集为只包括其本身边界的集合,被更新为包括[150,250]的边界集,此时,节点A、B合并产生一个临时的合并体AB边界集为{[50,250],[0,200],[50,250]},其中[50,250]为节点A、B所在层的边界值,[0,200]为合并体AB第一层后代的边界,[50,250]为合并体AB第二层后代的边界,由于节点右移了150,其横坐标变为150。
表1:
表2:
图3c示出了节点C合并到其兄弟节点B所在合并体的过程,图3d描述了节点C合并到其兄弟节点B所在合并体后节点的位置关系。在本发明实施例中,固定以合并体AB中树形数据节点为根节点的子树,因此其边界集以及相对横坐标都不变。由于节点C不是叶子节点,通过遍历其三个子节点后,C节点的初始化边界集包括其自身边界[100,200],以及其节点C后代第一层的边界[0,300],节点C的相对横坐标为100,如表2第2行所示。当节点C检测到其存在左兄弟节点,尝试合并到合并体AB时,应考虑自身和其子节点都不能与合并体AB各层的节点叠加,此时可通过比较合并的两个部分的各层节点的边界确定右移的距离,具体比较合并体AB的边界集与节点C的边界集,合并体AB的边界集为{[50,250],[0,200],[50,250]},节点C的边界集为{[100,200],[0,300]},通过比较合并的子树对应子层的边界,可以得出节点C需要右移150才不会与合并体AB叠加,而节点C的子节点需要右移200才不会与合并体AB第一层子节点叠加,因此以节点C为根节点的子树需要右移200才能完成合并,合并后的树的节点相关属性值如表2第3行所示。合并后C的相对横坐标为:300,节点A、B、C合并后的合并体ABC的边界集为{[50,400],[0,500],[50,250]},合并后还需对节点C的子节点的横坐标进行更新。
实施例四:
图4示出了本发明第四实施例提供的树形数据的图形输出装置的结构,为了便于说明,仅示出了与本发明实施例相关的部分。
该位置计算装置可以用于ERP***,或者具有图形输出位置计算功能的应用***,例如绘图***中,可以是运行于这些***的软件单元,也可以作为独立的挂件集成到这些***中,其中:
坐标计算指令接收单元41接收树形数据节点输出区域的坐标计算指令,该指令携带有树形数据;输出区域坐标确定单元42获取树形数据中每一个树型数据节点输出区域的位置信息,确定每一个树形数据节点输出区域的坐标,输出区域坐标确定单元42具体由横坐标确定单元421和纵坐标确定单元422组成;
横坐标确定单元421,用于对树形数据进行树的后序遍历,获取树形数据节点输出区域的宽度、以及与兄弟节点输出区域的间距信息,确定该树形数据节点输出区域的横坐标,该树形数据节点为后序遍历所述树形数据过程中访问的树形数据节点。横坐标确定单元421具体可以由初始横坐标确定单元和横坐标更新单元组成,其中:
初始横坐标确定单元根据树形数据节点的输出区域宽度、以及与兄弟节点输出区域的间距信息,确定该树形数据节点的边界集和输出区域的初始横坐标,该边界集包括所述树形数据节点的边界,以及所述树形数据节点后代每一层的边界,该树形数据节点为后序遍历树形数据过程中访问的树形数据节点;
横坐标更新单元当树形数据节点存在左兄弟节点时,根据树形数据节点的边界集和其左兄弟节点合并体的边界集,将以树形数据节点为根节点的子树和以其左兄弟节点为根节点的子树进行合并,更新合并后树形数据节点的横坐标,该树形数据节点为后序遍历树形数据过程中访问的树形数据节点;
纵坐标确定单元422当横坐标确定单元421完成对树形数据的后序遍历时,对树形数据进行树的先序遍历,根据树形数据节点输出区域高度、与父节点输出区域的层间距信息,确定该树形数据节点输出区域的纵坐标,该树形数据节点为先序遍历树形数据过程中访问的树形数据节点。
坐标输出单元43输出包含树形数据及其树形数据节点输出区域的坐标信息。
上述仅为本发明的***实施例,其各单元的功能如上述方法实施例所述,在此不再赘述,但不用以限制本发明。
本发明实施例在接收到树形数据节点输出区域的坐标计算指令时,获取指令中树形数据每一个树型数据节点的输出区域的位置信息,通过树的后序遍历,确定树形数据输出区域的横坐标,最后通过树的广度优先的先序遍历,获取树形数据节点输出区域的纵坐标,从而获得树形数据节点图形输出区域的坐标,克服了树形数据图形输出区域大小、位置无法定制,不紧凑的问题,使得用户可以简单、方便地定制树形数据的图形输出,使得输出的树形数据更加紧凑,有效地减少了输出的树形数据占用的空间。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (3)
1.一种树形数据的图形输出方法,其特征在于,所述方法包括下述步骤:
接收树形数据节点输出区域的坐标计算指令,所述指令携带有树形数据;
获取所述树形数据中每一个树型数据节点输出区域的位置信息,根据所述位置信息,确定每一个树形数据节点输出区域的坐标,所述位置信息为树形数据节点输出区域的高度、宽度、与兄弟节点输出区域的间距,以及与父节点输出区域的层间距;
输出包含所述树形数据的树形数据节点输出区域图形;
根据所述位置信息,确定每一个树形数据节点输出区域的坐标的步骤具体包括下述步骤:
对所述树形数据进行树的后序遍历,获取树形数据节点输出区域的宽度、以及与兄弟节点输出区域的间距信息,确定该树形数据节点输出区域的横坐标,所述树形数据节点为后序遍历所述树形数据过程中访问的树形数据节点;
当完成对所述树形数据的后序遍历时,对所述树形数据进行树的先序遍历,根据树形数据节点输出区域高度、与父节点输出区域的层间距信息,确定该树形数据节点输出区域的纵坐标;
所述对所述树形数据进行树的后序遍历,获取树形数据节点输出区域的宽度、以及与兄弟节点输出区域的间距信息,确定该树形数据节点输出区域的横坐标的步骤包括步骤:
根据所述输出区域宽度、以及与兄弟节点输出区域的间距信息,确定所述树形数据节点的边界集和输出区域的初始横坐标,所述边界集包括所述树形数据节点的边界,以及所述树形数据节点后代每一层的边界,所述树形数据节点为后序遍历所述树形数据过程中访问的树形数据节点;
当所述树形数据节点存在左兄弟节点时,根据所述树形数据节点的边界集和其左兄弟节点合并体的边界集,将以所述树形数据节点为根节点的子树和以其左兄弟节点为根节点的子树进行合并,更新合并后树形数据节点的横坐标;
确定所述树形数据节点的边界集和输出区域的横坐标的步骤包括步骤:
当所述树形数据节点为叶子节点时,确定所述树形数据节点的边界集,所述边界集仅包含所述树形数据节点的边界,若所述树形数据节点输出区域的宽度为k,则所述树形数据节点输出区域的左边界为0,右边界为k,所述树形数据节点输出区域的横坐标为0;
当所述树形数据节点不是叶子节点时,确定所述树形数据节点的边界集,所述树形数据节点的边界集包括所述树形数据节点的边界,以及所述树形数据节点后代的每一层的边界,若所述树形数据节点输出区域的宽度为k,所述树形数据节点后代的第一层的左边界为l,右边界为r,则(r-l)为所述树形数据节点后代的第一层输出区域的宽度,所述树形数据节点输出区域的横坐标为l+(r-l)/2-k/2,所述树形数据节点输出区域的左边界为l+(r-l)/2-k/2,右边界为l+(r-l)/2+k/2。
2.一种树形数据的图形输出装置,其特征在于,所述装置包括:
坐标计算指令接收单元,用于接收树形数据节点输出区域的坐标计算指令,所述指令携带有树形数据;
输出区域坐标确定单元,用于获取树形数据中每一个树型数据节点输出区域的位置信息,根据所述位置信息,确定每一个树形数据节点输出区域的坐标,所述位置信息为树形数据节点输出区域的高度、宽度、与兄弟节点输出区域的间距,以及与父节点输出区域的层间距;以及
用于输出包含所述树形数据的树形数据节点输出区域图形的单元,
其中,所述输出区域坐标确定单元具体包括:
横坐标确定单元,用于对树形数据进行树的后序遍历,获取树形数据节点输出区域的宽度、以及与兄弟节点输出区域的间距信息,确定该树形数据节点输出区域的横坐标,所述树形数据节点为后序遍历所述树形数据过程中访问的树形数据节点;以及
纵坐标确定单元,用于当横坐标确定单元完成对所述树形数据的后序遍历时,对所述树形数据进行树的先序遍历,根据树形数据节点输出区域高度、与父节点输出区域的层间距信息,确定该树形数据节点输出区域的纵坐标,所述树形数据节点为先序遍历所述树形数据过程中访问的树形数据节点;
所述横坐标确定单元包括:
初始横坐标确定单元,用于根据树形数据节点的输出区域宽度、以及与兄弟节点输出区域的间距信息,确定该树形数据节点的边界集和输出区域的初始横坐标,所述边界集包括所述树形数据节点的边界,以及所述树形数据节点后代每一层的边界,所述树形数据节点为后序遍历所述树形数据过程中访问的树形数据节点;以及
横坐标更新单元,用于当树形数据节点存在左兄弟节点时,根据所述树形数据节点的边界集和其左兄弟节点合并体的边界集,将以所述树形数据节点为根节点的子树和以其左兄弟节点为根节点的子树进行合并,更新合并后树形数据节点的横坐标,所述树形数据节点为后序遍历所述树形数据过程中访问的树形数据节点;
其中,所述初始横坐标确定单元确定树形数据节点的边界集和输出区域的初始横坐标包括:
当所述树形数据节点为叶子节点时,确定所述树形数据节点的边界集,所述边界集仅包含所述树形数据节点的边界,若所述树形数据节点输出区域的宽度为k,则所述树形数据节点输出区域的左边界为0,右边界为k,所述树形数据节点输出区域的横坐标为0;
当所述树形数据节点不是叶子节点时,确定所述树形数据节点的边界集,所述树形数据节点的边界集包括所述树形数据节点的边界,以及所述树形数据节点后代的每一层的边界,若所述树形数据节点输出区域的宽度为k,所述树形数据节点后代的第一层的左边界为l,右边界为r,则(r-l)为所述树形数据节点后代的第一层输出区域的宽度,所述树形数据节点输出区域的横坐标为l+(r-l)/2-k/2,所述树形数据节点输出区域的左边界为l+(r-l)/2-k/2,右边界为l+(r-l)/2+k/2。
3.一种树形数据的图形输出***,其特征在于,所述***包括权利要求2所述的树形数据的图形输出装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010542307.6A CN102467535B (zh) | 2010-11-12 | 2010-11-12 | 一种树形数据的图形输出方法、装置及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010542307.6A CN102467535B (zh) | 2010-11-12 | 2010-11-12 | 一种树形数据的图形输出方法、装置及*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102467535A CN102467535A (zh) | 2012-05-23 |
CN102467535B true CN102467535B (zh) | 2014-07-09 |
Family
ID=46071178
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201010542307.6A Active CN102467535B (zh) | 2010-11-12 | 2010-11-12 | 一种树形数据的图形输出方法、装置及*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102467535B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106445931B (zh) * | 2015-08-04 | 2019-06-28 | 阿里巴巴集团控股有限公司 | 数据库节点关联关系展示方法及装置 |
CN106294686B (zh) * | 2016-08-05 | 2021-04-02 | 董涛 | 一种应用于计算机技术领域思维导图中快速更新树结点位置坐标的方法 |
CN108319991B (zh) * | 2017-01-16 | 2021-02-09 | 航天信息股份有限公司 | 一种节点工程布线图确定方法及装置 |
CN108153826B (zh) * | 2017-12-07 | 2021-10-22 | 北京大学 | 一种基于条形码树的可视化形式比较层次结构数据的方法和*** |
CN108536837B (zh) * | 2018-04-13 | 2022-04-01 | 上海渠杰信息科技有限公司 | 知识树的生成方法、装置、设备及存储介质 |
CN111581534B (zh) * | 2020-05-22 | 2022-12-13 | 哈尔滨工程大学 | 一种基于立场一致的谣言传播树结构优化方法 |
CN112003729B (zh) * | 2020-07-25 | 2022-12-27 | 苏州浪潮智能科技有限公司 | 异构云平台资源拓扑展示方法、***、终端及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1983257A (zh) * | 2006-05-11 | 2007-06-20 | 华为技术有限公司 | 一种通过树型结构展现数据的方法及*** |
CN101042643A (zh) * | 2006-03-24 | 2007-09-26 | 国际商业机器公司 | 在本地化过程中调整图形用户界面布局的方法及装置 |
CN101063972A (zh) * | 2006-04-28 | 2007-10-31 | 国际商业机器公司 | 用于增强映像树的可视性的方法和装置 |
-
2010
- 2010-11-12 CN CN201010542307.6A patent/CN102467535B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101042643A (zh) * | 2006-03-24 | 2007-09-26 | 国际商业机器公司 | 在本地化过程中调整图形用户界面布局的方法及装置 |
CN101063972A (zh) * | 2006-04-28 | 2007-10-31 | 国际商业机器公司 | 用于增强映像树的可视性的方法和装置 |
CN1983257A (zh) * | 2006-05-11 | 2007-06-20 | 华为技术有限公司 | 一种通过树型结构展现数据的方法及*** |
Also Published As
Publication number | Publication date |
---|---|
CN102467535A (zh) | 2012-05-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102467535B (zh) | 一种树形数据的图形输出方法、装置及*** | |
US11960512B2 (en) | Identifying and graphically representing multiple parent nodes of a child node | |
US8791955B2 (en) | Method, system, and computer-readable medium for creating and laying out a graphic within an application program | |
US20150089355A1 (en) | Graphical tile-based layout | |
US7750924B2 (en) | Method and computer-readable medium for generating graphics having a finite number of dynamically sized and positioned shapes | |
JP4856237B2 (ja) | グラフィック・デザイナの再利用を可能にする宣言型定義 | |
US20160342678A1 (en) | Manipulation of arbitrarily related data | |
US20230409613A1 (en) | Identifying Missing Nodes Within a Graphically Represented Family | |
US10261898B1 (en) | Concurrent marking of location and shape changing objects | |
US20200272313A1 (en) | Rule-based user interface layout rearrangement | |
US9886465B2 (en) | System and method for rendering of hierarchical data structures | |
US11829393B2 (en) | Graphically representing related record families using a phantom parent node | |
KR20190079354A (ko) | 분할 공간 기반의 공간 데이터 객체 질의처리장치 및 방법, 이를 기록한 기록매체 | |
CN109558118B (zh) | 创建智能小程序的原生组件的方法、装置、设备和存储介质 | |
CN102566849B (zh) | 树形数据绘制输出位置获取和输出方法、装置及erp*** | |
CN106484388A (zh) | 用户界面的实现方法和装置 | |
US11539594B2 (en) | Diagramming chlid nodes with multiple parent nodes | |
US20190317939A1 (en) | Hierarchical window function | |
US10559105B2 (en) | Implementing interactive hierarachical chart legend data display | |
CN115563355A (zh) | Nebula Graph图数据库查询方法、***、电子装置及介质 | |
Cockburn | Supporting tailorable program visualisation through literate programming and fisheye views | |
CN102591660B (zh) | 一种flash程序对象的构建方法及装置 | |
CN112966481A (zh) | 一种数据表格展示方法及装置 | |
WO2022228209A1 (zh) | 可视化视图的构建方法及装置 | |
US11586603B1 (en) | Index sheets for robust spreadsheet-based applications |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |