CN102662939B - 树形数据结构的展示方法与系统 - Google Patents

树形数据结构的展示方法与系统 Download PDF

Info

Publication number
CN102662939B
CN102662939B CN201110367407.4A CN201110367407A CN102662939B CN 102662939 B CN102662939 B CN 102662939B CN 201110367407 A CN201110367407 A CN 201110367407A CN 102662939 B CN102662939 B CN 102662939B
Authority
CN
China
Prior art keywords
node
data structure
visible
path
request
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
Application number
CN201110367407.4A
Other languages
English (en)
Other versions
CN102662939A (zh
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.)
FUJIAN RONGJI SOFTWARE Co Ltd
Original Assignee
FUJIAN RONGJI SOFTWARE Co Ltd
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 FUJIAN RONGJI SOFTWARE Co Ltd filed Critical FUJIAN RONGJI SOFTWARE Co Ltd
Priority to CN201110367407.4A priority Critical patent/CN102662939B/zh
Publication of CN102662939A publication Critical patent/CN102662939A/zh
Application granted granted Critical
Publication of CN102662939B publication Critical patent/CN102662939B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

本发明的目的在于提供能根据操作帐号的权限,在使用较少系统资源的情况下,兼顾可见节点内容查看与其在整体数据结构上的位置的树形数据结构展示方法,以及基于该方法构建的系统,本发明从数据库中查询当前操作帐号的可见节点与当前操作帐号的可见数据结构的最高级节点,所述可见节点在数据结构上为可见数据结构的最高级节点的子节点,所述可见节点的子节点为可见节点;在可见节点中筛选出路径节点,将路径节点的编号与路径存储于内存中,所述路径节点是其一级父节点为非可见节点的可见节点;展开时:若被展开的节点为非可见节点,从内存中存储的路径展开数据结构;若被展开的节点为可见节点,从数据库展开数据。

Description

树形数据结构的展示方法与系统
技术领域
本发明涉及计算机应用领域,尤其涉及以树形结构存储的数据的展示。
背景技术
树形结构是数据结构的一种。数据结构是指同一数据元素类中各数据元素之间存在的关系。广义的数据结构分为逻辑结构、存储结构(物理结构)和数据的运算。数据的逻辑结构是对数据之间关系的描述,本说明书中所称数据结构即数据的逻辑结构。
数据结构有四类基本结构:集合、线性结构、树形结构、图状结构(网状结构)。树形结构和图形结构全称为非线性结构。集合结构中的数据元素除了同属于一种类型外,别无其它关系。线性结构中元素之间存在一对一关系,树形结构中元素之间存在一对多关系,图形结构中元素之间存在多对多关系。在图形结构中每个结点的前驱结点数和后续结点数可以任意多个。
由于树形结构层次关系清楚,便于管理,因此在计算机、网络领域广泛应用,例如很多OA(Office Automation即办公自动化)软件中对任务数据的存储方式就是以树形数据结构进行存储,并以树形显示界面展示的,因为在树形显示界面中,各任务之间的逻辑关系一目了然,而且便于添加、删除等管理维护。
此外树形数据结构的展示方法不一定通过树形显示界面,采用类似文件夹方式也可以进行展示,例如windows系统中的文件共享,各个被共享的文件夹之间的数据关系也是根目录-子目录(称之为母文件夹-子文件夹)的树形数据结构。
如果对于共享的数据库,不同的帐号操作时,其享有的权限也是不相同的,对于树形数据结构上的某个节点,不同的帐号可能有以下三种不同的查看权限:
有的帐号没有权限得知其存在;
有的帐号可以得知其在数据结构上的位置,但无法查看其具体内容;
还有的帐号既可以得知其在数据结构上的位置,也可以查看其具体内容。
现有的树形数据结构展示方式无法兼顾不同帐号的查看权限与数据结构的查看。
以windows 7系统中的文件共享为例,在点击打开“网络”中“SEANLIN-PC”后,该计算机上所有共享的文件夹,显示界面如图1所示,事实上,在数据结构上“化学”“数学”“历史”都是“Book”的子文件夹,“无机化学从书”又进一步是“化学”的子文件夹,但是,我们可以发现在图1中,上述各个文件夹不分路径,全部平铺显示,也就是说如果根文件夹显示了。子文件照样可能在共享列表中显示,因此无法让操作者得知其数据结构,从而无法得知各个文件夹的从属关系。
而且使用该方式展开的数据量大,全部平铺。比如说上图“数学”文件夹是“Book”文件夹里面的一部分。只是管理员可能开放了“数学”文件夹读写的权限而“Book”文件夹只开发了读的权限,两者赋权不一致。导致显示出很多共享目录。如果是个人电脑还好。如果用于组织,群组的办公,文件共享的数据量非常大,例如有成千上万个共享文件夹,如果没有组织架构使用上会增加困难,降低工作效率。又例如项目管理中一个很重要的一块是工作分解结构(WBS),就是把任务分解成各个小块,我们称之为子任务。如果项目参与人,只能查看部分工作想使用平铺的方式,就无法正确的理解WBS的内容,对工作理解产生偏差。
如果是树形的显示界面,据发明人所知,以OA软件为例,当前操作帐号通过查看其最高级的可见节点,然后从数据库展开该最高级节点的数据,进而查看到该节点下的各级子节点。
但该显示方式会导致如下问题:当前操作帐号权限的最高级的可见节点可能仅仅是全部树形数据结构的一个很小的部分,因此操作者无法得知其查看的节点在整体数据结构上的位置。这样也同样无法正确的理解WBS的内容。
如果使用传统技术,结合当前操作帐号的权限对每个节点进行是否展开的判断,从数据库中逐级展开可见节点的数据的方式对系统资源消耗太大,展开速度缓慢。
发明内容
本发明的目的在于提供能根据操作帐号的权限,在使用较少系统资源的情况下,兼顾可见节点内容查看与其在整体数据结构上的位置的树形数据结构展示方法,以及基于该方法构建的系统。
首先先对本说明书中出现的部分技术术语进行一些解释。
在本说明书中,“可见节点”是指当前操作帐号对该节点所记录的内容具有部分或全部的查看权限;
“可见数据结构”是指当前操作帐号可以查看的树形数据结构的拓扑结构部分(具体详见具体实施方式,并结合图2、3进行理解,例如图2为数据库中全部数据结构,而图3为某一帐号可见数据结构),也就是说可见数据结构上各个节点未必是可见节点,因为某些在可见数据结构显示界面上展示的节点我们可能只能见到其在“树”上的位置,而无法查看其内容(即只有查看其位置的权限,却读取其具体内容的权限),因此可见节点一定是可见数据结构上的节点,而可见数据结构上的各个节点未必都是可见节点。
因此“可见数据结构的最高级节点”在是指当前操作帐号可以查看的树形数据结构中被允许看到其存在的,最高级的节点,但是该节点可以是可见节点,也可以是非可见节点,若是非可见节点,操作者无法查看其内容,也无法对该点进行操作。
可见节点在数据结构上为可见数据结构的最高级节点的子节点,路径节点是其一级父节点为非可见节点的可见节点,是可见节点的一种,因此所有的路径节点的路径中必然都包含有可见数据结构的最高级节点的路径。
某节点A的“子节点”是指在树状结构上,位于节点A之下,直接或间接与节点A相连接的节点,若节点B为节点A的子节点且与节点A直接相连,则称子节点B为节点A的“一级子节点”,若节点C为节点B的“一级子节点”,则节点C为节点A的“二级子节点”,以此类推,有“三级子节点”“四级子节点”等。
相对的,某节点Z的“父节点”是指在树状结构上,位于节点Z之上,直接或间接与节点Z相连接的节点,若节点Y为节点Z的父节点且与节点Z直接相连,则称父节点Y为节点Z的“一级父节点”,若节点X为节点Y的“一级父节点”,则节点X为节点Z的“二级父节点”,以此类推,有“三级父节点”“四级父节点”等。
“展开”是指读取数据,并形成数据关系所对应的几何拓扑结构的过程。本发明中的展开数据结构是通过读取与数据关系相关的路径数据,然后形成与数据关系相对应的几何拓扑结构的过程;而展开数据不仅包括了展开数据结构,也包括了读取除“与数据结构有关系的路径数据”之外其他的数据内容,并载入到对应节点中。
“显示”是指将拓扑架构以可视化的方式展现的过程。
一个节点处于缩进的状态不同于该节点处于未展开状态,节点处于缩进的状态时,事实上该节点已经被展开,只是在显示上未将其结构在界面上显示出它所包含的子节点,在接受到外界指令后可以再以展开的显示状态予以显示(即显示该节点的展开结构)。
为实现本发明的目的,本发明提供了一种树形数据结构的展示方法,包括以下步骤:
步骤1接受请求:接受展示数据结构的请求;
步骤2路径载入:从数据库中查询当前操作帐号的可见节点与当前操作帐号的可见数据结构的最高级节点,所述可见节点在数据结构上为可见数据结构的最高级节点的子节点,所述可见节点的子节点为可见节点;在可见节点中筛选出路径节点,将路径节点的编号与路径存储于内存中,所述路径节点是其一级父节点为非可见节点的可见节点;
步骤3数据结构展开与显示:根据步骤1展示数据结构的请求,将被请求展示的数据结构展开并显示,展开时:若被展开的节点为非可见节点,从内存中存储的路径展开数据结构;若被展开的节点为可见节点,从数据库展开数据。
本发明所述展示方法,由于在步骤2路径载入中先进行筛选,排除了非可见节点以及可见节点中属于可见节点的子节点那一部分,因此大大减少了需要加载路径的节点数量,也减少了步骤3中对路径节点数据进行展开时涉及的路径数量,提高了效率,减低了硬件负荷;
在步骤3中的数据结构展开时,仅针对可见节点在数据库中展开数据,而对可见数据结构中的非可见节点由于仅仅需要查看其在数据结构上的位置,而不需要查看其具体内容,因此本发明采用从内存中存储的路径进行展开,从内存中载入路径大大快于从数据库中载入大量的数据并对可读权限等进行判断,而且对硬件的负荷也大大降低。
所以采用本发明的技术方案能提高硬件利用率,加快数据展开速度,且能展现树状数据结构的位置与层次关系。
其中,步骤1中展示数据结构的请求为以树形结构展示可见数据结构;
步骤3中数据结构的展开包括展开所有的虚拟结构,所述虚拟结构为虚节点构成的数据结构,可见数据结构中的非可见节点称为虚节点,展开方式如下:按路径节点的路径从可见数据结构的最高级节点到路径节点的一级父节点依次展开数据结构。
其中,在步骤3中,如果展开的节点是非可见节点,在可见数据结构上有且仅有唯一的子节点,那么显示时显示该节点的展开结构。
其中,在步骤3中,如果展开的节点是非可见节点,在可见数据结构上有2个以上的子节点,那么显示时该节点以缩进的状态显示。
其中,步骤3中数据结构的展开包括展开所有的可见结构,展开方式如下:按路径节点的路径从可见数据结构的最高级节点到路径节点依次展开数据结构。
其中,步骤1中展示数据结构的请求为展示可见数据结构上的一个节点;
在步骤3展开并显示步骤1中被请求展示的节点。
其中,步骤1中展示数据结构的请求为:展示可见数据结构上的一个节点,被请求前,该节点以文件夹形式显示;
步骤3显示步骤1中被请求展示的节点时,对被展开的节点的子节点,以文件夹的形式显示。
其中,步骤1中展示数据结构的请求为:展示可见数据结构上的一个节点,被请求前,按该节点为可见节点或非可见节点采用不同的文件夹图标进行显示。
其中,在步骤3显示时,对可见节点与非可见节点采用不同的图标进行显示。
其中,在步骤3显示时,显示节点名称。
其中,在步骤3显示时,对非可见节点显示用于标识可见节点与非可见节点的区别字符。
本发明还提供了一种树形数据结构的展示系统,包括:
接受请求模块,用于接受展示数据结构的请求;
路径载入模块,用于从数据库中查询当前操作帐号的可见节点与当前操作帐号的可见数据结构的最高级节点,所述可见节点在数据结构上为可见数据结构的最高级节点的子节点,所述可见节点的子节点为可见节点;在可见节点中筛选出路径节点,将路径节点的编号与路径存储于内存中,所述路径节点是其一级父节点为非可见节点的可见节点;
数据结构展开与显示模块,用于根据接受请求模块所接受的展示数据结构的请求,将被请求展示的数据结构展开并显示,展开时:若被展开的节点为非可见节点,从内存中存储的路径展开数据结构;若被展开的节点为可见节点,从数据库展开数据。
由于该树形数据结构的展示系统基于本发明所述方法进行构建,因此同样具有本发明所述树形数据结构的展示方法的技术效果。
其中,接受请求模块所接受的展示数据结构的请求为以树形结构展示可见数据结构;
数据结构展开与显示模块所执行的数据结构的展开包括展开所有的虚拟结构,所述虚拟结构为虚节点构成的数据结构,可见数据结构中的非可见节点称为虚节点,展开方式如下:按路径节点的路径从可见数据结构的最高级节点到路径节点的一级父节点依次展开数据结构。
其中,在数据结构展开与显示模块进行展开时,如果展开的节点是非可见节点,在可见数据结构上有且仅有唯一的子节点,那么显示时显示该节点的展开结构。
其中,在数据结构展开与显示模块进行展开与显示时,如果展开的节点是非可见节点,在可见数据结构上有2个以上的子节点,那么显示时该节点以缩进的状态显示。
其中,在数据结构展开与显示模块进行展开时,数据结构的展开包括展开所有的可见结构,展开方式如下:按路径节点的路径从可见数据结构的最高级节点到路径节点依次展开数据结构。
其中,接受请求模块接受的展示数据结构的请求为:展示可见数据结构上的一个节点;
数据结构展开与显示模块展开并显示接受请求模块接受展示的节点。
其中,接受请求模块接受的展示数据结构的请求为:展示可见数据结构上的一个节点,被请求前,该节点以文件夹形式显示;
在数据结构展开与显示模块显示接受请求模块接受展示的节点时,对被展开的节点的子节点,以文件夹的形式显示。
其中,接受请求模块接受的展示数据结构的请求为:展示可见数据结构上的一个节点,被请求前,按该节点为可见节点或非可见节点采用不同的文件夹图标进行显示。
其中,数据结构展开与显示模块,对可见节点与非可见节点采用不同的图标进行显示。
其中,数据结构展开与显示模块还用于显示节点名称。
其中,数据结构展开与显示模块,对非可见节点显示用于标识可见节点与非可见节点的区别字符。
附图说明
图1为背景技术所述windows 7系统中的文件共享的显示界面;
图2为具体实施方式中机站建设的项目树形分解图;
图3为具体实施方式中小张的帐号可见机站建设项目的完整视图;
图4为具体实施方式中一数据结构展开显示界面;
图5为具体实施方式中流程图一;
图6为具体实施方式中流程图二;
图7为具体实施方式中流程图三;
图8为具体实施方式中树形数据结构的展示系统的结构示意图。
具体实施方式
以下结合具体的实施例,对本发明进行具体说明:
一个机站建设的项目,分解如图2所示,其中财务小张可见的部分有“建筑公司协议合同”、“自购物品核销”以及“硬件购买”这几个事务。
其数据格式如表1所示:
Figure BDA0000109566140000081
表1
如果财务小张希望将他可见的任务关系以树形的方式展示在他面前,那么,首先小张用其帐号登录公司任务系统,其中系统设定小张查看任务是请求以树型结构展开其可见任务;因此进行步骤S501:接受展示数据结构的请求;
在本实施例中,展示数据结构的请求是请求以树形结构展示可见数据结构;
但在某些实施例中,展示数据结构的请求是请求展示可见数据结构上的一个节点;例如双击打开一个文件夹,希望查看该文件夹下包含的子文件夹;
S502从数据库中查询当前操作帐号的可见节点与当前操作帐号的可见数据结构的最高级节点,所述可见节点在数据结构上为可见数据结构的最高级节点的子节点,所述可见节点的子节点为可见节点;
对于本实施例而言,系统从数据库中查到财务小张能见到的几个数据:建筑公司协议合同、自购物品核销、硬件购买、建筑材料核销、办公用品核销,这些是可见节点;
系统从数据库中查到财务小张能见到的数据结构的最高级节点是:XX机站建设(小张的可见数据结构如图3所示);
S503在可见节点中筛选出路径节点,所述路径节点是其一级父节点为非可见节点的可见节点;
本实施例中,由于建筑材料核销、办公用品核销的路径中包含05,第二部查询出来的可见节点“自购物品核销”的路径已经包括有05了,从图2我们可以看出节点“建筑材料核销”、“办公用品核销”为节点“自购物品核销”的一级子节点(“自购物品核销”为节点“建筑材料核销”、“办公用品核销”的一级父节点),因此“建筑材料核销”、“办公用品核销”虽然是可见节点,但并非路径节点,那么我们需要在内存中记录的数据(也就是路径节点)为:建筑公司协议合同、自购物品核销、硬件购买的以及他们的编号和路径;
因此我们得到的路径如下:
/01/02/04;
/01/02/05;
/01/06/08;
根据以上路径,我们得出全部的虚节点有3个,路径如下:
/01、/01/02、/01/06;
S504将上述路径节点的编号与路径存储于内存中;
然后根据S501中展示数据结构的请求,将被请求展示的数据结构展开并显示,展开时:若被展开的节点为非可见节点,从内存中存储的路径展开数据结构;若被展开的节点为可见节点,从数据库展开数据,具体如图6所示:
S601:是否可见节点;
如果是,进行步骤S602:从数据库展开数据;
如果否,进行步骤S603:从内存中存储的路径展开数据。
对应于以树形结构展示可见数据结构为请求的实施例,一种可行的数据结构的展开方式,包括展开所有的虚拟结构,所述虚拟结构为虚节点构成的数据结构,可见数据结构中的非可见节点称为虚节点,展开方式如下:
按路径节点的路径从可见数据结构的最高级节点到路径节点的一级父节点依次展开数据结构。
如果需要展开除虚拟结构之外的可见节点,那么数据结构的展开方式包括展开所有的可见结构,具体如:步骤S505按路径节点的路径从可见数据结构的最高级节点到路径节点依次展开数据结构。基于前面所述实施例展开所有的虚拟结构的基础之上,本实施例进一步展开了独立的可见节点或作为虚拟节点子节点的可见节点。
S506展开之后,以树形结构显示展开的数据。
对于展开与显示,可以展开需要展开的全部数据结构后再显示,也可以展开一个节点,显示该节点的数据结构,然后再展开下一个需要展开的节点,再显示;直至展开并显示所有需要展示的节点。
例如在本实施例中,找出S503中的路径的根也就是小张可见数据结构的最高级节点的路径,这里只有同一个(/01)(这里需要说明2点:1、如果有多个可见数据结构的最高级节点,那么显示时需要显示为多棵树,2、本实施例中可见数据结构的最高级节点恰好是数据库的根节点(/01),在其他实施例中,有可能可见数据结构的最高级节点并非数据库的根节点,也就是说可见数据结构是数据库全部数据结构的一个部分),
所以我们显示的时候第一步显示成:XX机站建设;
接下来,判定展开的部分从三个数据的路径中得知要展开的有节点:02(/01/02,简写为02,下同),04,05,06,08再比对路径节点的数据,02和06是非可见节点,但是却是可见数据结构中的节点,在以树型结构进行数据展示时,如果不显示出02和06的存在,那么可见数据结构是不完整的,但标示出02和06的存在,而又无需显示这些节点的具体内容,而04、05、08是可见节点,同时又是可见数据结构中的节点,因此既需要标示出这些节点的存在,也需要显示这些节点的具体内容,例如这些节点所代表的任务的内容、进度,这些任务又有哪些子任务(例如“自购物品核销”中有子任务“建筑材料核销”、“办公用品核销”),子任务的内容、进度等。
因为“自购物品核销”是可见的,可以根据数据库数据展开。根据数据库展开,不仅可以见到该节点的内容,而且可以展开其全部子字节(包括其一级子节点与更低级的子节点),如果按路径节点的路径从可见数据结构的最高级节点到路径节点依次展开数据结构那么将得到完整视图,如图3所示;
当然在展开过程中,我们可以根据需要灵活设置,例如,我们可以先展开所有的虚拟结构,对路径节点不展开,那么节点“自购物品核销”/01/02/05就不展开,其下的“建筑材料核销”、“办公用品核销”也就不被显示,待我们需要查看“自购物品核销”的具体内容的时候,再点击“自购物品核销”的图标,这时,系统再从数据库展开该节点。这样当可见数据结构中有多个路径节点或路径节点下数据结构复杂,数据量庞大的时候,可以暂时不展开,根据需要选择性展开,可以有效节约系统资源。
本实施例在显示时,显示节点名称。
并且在显示时,对非可见节点显示用于标识可见节点与非可见节点的区别字符。这是为了在显示时,提醒操作者进行无谓或错误的操作,对非可见节点我们可以采用如图3所示的方式,在节点名称之前加上区别字符“虚”,例如“虚房产建设”等,
也可以在显示时,对可见节点与非可见节点采用不同的图标进行显示,以便加以标识,例如图4中在节点前用带锁的标识标识非可见节点。
如果被展开非可见节点,在可见数据结构上有2个以上的子节点,那么显示时该节点以缩进的状态显示。
例如显示时对“房产建设”这个节点展开,但是显示时这个节点下的子节点是缩进的,这个可以通过例如在页面下藏值等方式实现,当我们需要查看这个节点的展开结构时,在点击该节点,这时显示该节点的展开结构不需要在做一次展开。缩进状态的节点可以是可见节点,也可以是非可见节点。
如果展开的节点是非可见节点,在可见数据结构上有且仅有唯一的子节点,那么显示时显示该节点的展开结构。因为,如果到可见节点路径很长,为了方便使用人员,减少点击次数。如果他的可见节点藏在一个很深的节点下。我们展开路径的时候,如果发现展开的结果中只有一个,并且是虚拟的部分(为虚节点)。那么将循环做他的展开。也就是说如果展开的节点是非可见节点,在可见数据结构上有且仅有唯一的子节点,那么显示时显示该节点的展开结构。
为说明上述展开方式,我们再以一个实施例进行说明:
例如在图4所示的实施例展示时,节点“2011年
Figure BDA0000109566140000121
内控-借款与报销”在可见数据机构中有且仅有子节点“2011各分公司-借款与报销”,因此在显示时,系统自动显示节点“2011年
Figure BDA0000109566140000122
内控-借款与报销”的展开结构,同理,节点“2011各分公司-借款与报销”,“2011年借款与报销(福建总部)”“2011年借款与报销(研发中心)”在可见数据机构中有且仅有一个子节点,因此它们也自动以展开的方式显示在界面上。
因此对于这个功能,适合在树形展示方式上。如果在类似windows文件共享的视图中,我们可以采用以下方案:
建立一个虚拟文件夹,这个文件名或路径栏中将路径用其父节点的名字显示出来,如果有多级父节点,就显示多层,例如在文件夹的路径栏中显示,\XX基站建设\房产建设\自购商品核销。
下列的实施例以类似Windows文件的方式一层层进行展示,我们采用如图7所示流程:
S701:请求展示可见数据结构上的一个节点,被请求前,该节点以文件夹形式显示;为了区分不同的查看权限,按该节点为可见节点或非可见节点采用不同的文件夹图标进行显示。
S702:从数据库中查询当前操作帐号的可见节点与可见数据结构的最高级节点;
S703:在可见节点中筛选出路径节点;
S704:将路径节点的编号与路径存储于内存中;
S705:展开并显示被请求展示的节点;
S706:以文件夹显示展开的数据。
在本实施例中,展开后显示的文件夹也可以按可见节点或非可见节点,采用不同的图标进行显示,并且可以在文件夹显示的名字中对非可见节点冠以前述实施例中“虚”之类的区别字符。
本实施例与树形目录的形式显示的实施例类似之处在于,同样对加载到内存路径的节点进行筛选,筛选的条件一致,而展开时对不同节点的展开方式也类似,展开的节点是可见节点时从数据库展开数据;展开的节点是非可见节点时从内存中存储的路径展开数据。因此该方案同样能提高硬件效率,加快加载速度。
第二种方案与第一种方案不同之处在于,第一种方案,展示的是可见数据结构的整体,而第二种方案则是以层层递进的方式展示数据结构,每次操作后的操作显示界面都只展开某一节点并显示(其显示效果类似于在Windows系统中,点击展开一个文件夹,查看该文件夹中包含哪些子文件夹与文件)。
上述各实施例提及的流程可以用如图8所示的树形数据结构的展示系统实现,图中:
接受请求模块801,用于接受展示数据结构的请求;
路径载入模块802,用于从数据库中查询当前操作帐号的可见节点与当前操作帐号的可见数据结构的最高级节点,所述可见节点在数据结构上为可见数据结构的最高级节点的子节点,所述可见节点的子节点为可见节点;在可见节点中筛选出路径节点,将路径节点的编号与路径存储于内存中,所述路径节点是其一级父节点为非可见节点的可见节点;
数据结构展开与显示模块803,用于根据接受请求模块所接受的展示数据结构的请求,将被请求展示的数据结构展开并显示,展开时:若被展开的节点为非可见节点,从内存中存储的路径展开数据结构;若被展开的节点为可见节点,从数据库展开数据。
各模块可以按照本说明书中提及的各个改进功能或具体需要实现的功能加以改进。
以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

Claims (8)

1.一种树形数据结构的展示方法,包括以下步骤:
步骤1接受请求:接受展示数据结构的请求;
步骤2路径载入:从数据库中查询当前操作帐号的可见节点与当前操作帐号的可见数据结构的最高级节点,所述可见节点在数据结构上为可见数据结构的最高级节点的子节点,所述可见节点的子节点为可见节点;在可见节点中筛选出路径节点,将路径节点的编号与路径存储于内存中,所述路径节点是其一级父节点为非可见节点的可见节点;
步骤3数据结构展开与显示:根据步骤1展示数据结构的请求,将被请求展示的数据结构展开并显示,展开时:若被展开的节点为非可见节点,从内存中存储的路径展开数据结构;若被展开的节点为可见节点,从数据库展开数据;
其中,步骤1中展示数据结构的请求为以树形结构展示可见数据结构;步骤3中数据结构的展开包括展开所有的虚拟结构,所述虚拟结构为虚节点构成的数据结构,可见数据结构中的非可见节点称为虚节点,展开方式如下:按路径节点的路径从可见数据结构的最高级节点到路径节点的一级父节点依次展开数据结构。
2.根据权利要求1所述的树形数据结构的展示方法,其特征在于:
在步骤3中,如果展开的节点是非可见节点,在可见数据结构上有且仅有唯一的子节点,那么显示时显示该节点的展开结构。
3.根据权利要求1所述的树形数据结构的展示方法,其特征在于:
在步骤3中,如果展开的节点是非可见节点,在可见数据结构上有2个以上的子节点,那么显示时该节点以缩进的状态显示。
4.根据权利要求1所述的树形数据结构的展示方法,其特征在于:
步骤3中数据结构的展开包括展开所有的可见结构,展开方式如下:按路径节点的路径从可见数据结构的最高级节点到路径节点依次展开数据结构。
5.根据权利要求1所述的树形数据结构的展示方法,其特征在于:
步骤1中展示数据结构的请求为展示可见数据结构上的一个节点;
在步骤3展开并显示步骤1中被请求展示的节点。
6.根据权利要求5所述的树形数据结构的展示方法,其特征在于:
步骤1中展示数据结构的请求为:展示可见数据结构上的一个节点,被请求前,该节点以文件夹形式显示,并且按该节点为可见节点或非可见节点采用不同的文件夹图标进行显示;
步骤3显示步骤1中被请求展示的节点时,对被展开的节点的子节点,以文件夹的形式显示,并且对可见节点与非可见节点采用不同的图标进行显示,同时显示节点名称,且对非可见节点显示用于标识可见节点与非可见节点的区别字符。
7.一种树形数据结构的展示系统,包括:
接受请求模块,用于接受展示数据结构的请求;
路径载入模块,用于从数据库中查询当前操作帐号的可见节点与当前操作帐号的可见数据结构的最高级节点,所述可见节点在数据结构上为可见数据结构的最高级节点的子节点,所述可见节点的子节点为可见节点;在可见节点中筛选出路径节点,将路径节点的编号与路径存储于内存中,所述路径节点是其一级父节点为非可见节点的可见节点;
数据结构展开与显示模块,用于根据接受请求模块所接受的展示数据结构的请求,将被请求展示的数据结构展开并显示,展开时:若被展开的节点为非可见节点,从内存中存储的路径展开数据结构;若被展开的节点为可见节点,从数据库展开数据;
其中,接受请求模块所接受的展示数据结构的请求为以树形结构展示可见数据结构;
数据结构展开与显示模块所执行的数据结构的展开包括展开所有的虚拟结构,所述虚拟结构为虚节点构成的数据结构,可见数据结构中的非可见节点称为虚节点,展开方式如下:按路径节点的路径从可见数据结构的最高级节点到路径节点的一级父节点依次展开数据结构。
8.根据权利要求7所述的树形数据结构的展示系统,其特征在于:
在数据结构展开与显示模块进行展开时,如果展开的节点是非可见节点,在可见数据结构上有且仅有唯一的子节点,那么显示时显示该节点的展开结构。
CN201110367407.4A 2011-11-17 2011-11-17 树形数据结构的展示方法与系统 Active CN102662939B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201110367407.4A CN102662939B (zh) 2011-11-17 2011-11-17 树形数据结构的展示方法与系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201110367407.4A CN102662939B (zh) 2011-11-17 2011-11-17 树形数据结构的展示方法与系统

Publications (2)

Publication Number Publication Date
CN102662939A CN102662939A (zh) 2012-09-12
CN102662939B true CN102662939B (zh) 2014-07-09

Family

ID=46772433

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110367407.4A Active CN102662939B (zh) 2011-11-17 2011-11-17 树形数据结构的展示方法与系统

Country Status (1)

Country Link
CN (1) CN102662939B (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102999608A (zh) * 2012-11-21 2013-03-27 用友软件股份有限公司 大数据的树表展现系统和树表展现方法
CN103020273B (zh) * 2012-12-27 2016-08-17 福建榕基软件股份有限公司 树形结构数据的展示及相关索引表生成的方法与装置
CN104598517A (zh) * 2014-12-09 2015-05-06 北京网梯科技发展有限公司 基于普通数据库的树型结构表的存储与查询技术
CN107402882B (zh) * 2017-07-21 2020-11-06 杭州迪普科技股份有限公司 Web页面测试方法和装置
CN108255973A (zh) * 2017-12-27 2018-07-06 山东浪潮云服务信息科技有限公司 一种数据呈现方法和装置
CN108335363A (zh) * 2018-01-22 2018-07-27 上海星合网络科技有限公司 多维知识体系立体展示方法及装置
CN112256690B (zh) * 2019-07-22 2022-09-13 上海汇招信息技术有限公司 新型树形结构方法以及新型树形结构的更新方法
CN111580912A (zh) * 2020-05-09 2020-08-25 北京飞讯数码科技有限公司 一种多层次结构资源组的展示方法及存储介质
CN113204435B (zh) * 2021-07-01 2021-12-03 阿里云计算有限公司 数据处理方法以及系统

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101436195A (zh) * 2008-10-30 2009-05-20 东软集团股份有限公司 在Web用户界面中生成资源访问入口的方法及系统
CN101751399A (zh) * 2008-12-12 2010-06-23 中国移动通信集团河北有限公司 决策树优化方法和优化系统

Also Published As

Publication number Publication date
CN102662939A (zh) 2012-09-12

Similar Documents

Publication Publication Date Title
CN102662939B (zh) 树形数据结构的展示方法与系统
Louf et al. Emergence of hierarchy in cost-driven growth of spatial networks
CN103186836B (zh) 具有元素关系指示的业务智能控制面板组装系统和方法
CN104254846B (zh) 用于电子设备的基于内容的导航
US20180150495A1 (en) Augmenting relational databases via database structure graph
CN107408114A (zh) 基于事务访问模式识别联结关系
Gunawan et al. Enterprise architecture for cloud-based ERP system development
Antelmi et al. SimpleHypergraphs. jl—novel software framework for modelling and analysis of hypergraphs
Becla et al. Report from the 3rd workshop on extremely large databases
Chavez et al. Services make the repository
CN103020273A (zh) 树形结构数据的展示及相关索引表生成的方法与装置
Weston et al. Hold it All Together: a Case Study in Quality Control for Born-Digital Archiving
Hsu et al. US Geological Survey Community for Data Integration 2017 Workshop Proceedings
RU2748741C2 (ru) Система управления мастер-данными об активах
Blackwell et al. Recovery Act: Geothermal Data Aggregation: Submission of Information into the National Geothermal Data System, Final Report DOE Project DE-EE0002852 June 24, 2014
Kerzner et al. Big Data in Oil & Gas and Petrophysics
Winters et al. Analysis of ers use cases for irods
Cheng et al. Data management and application on CPSE-Bio
Didimo et al. Graph visualization and data mining
Benkler An Approach for Identifying Microservices using Clustering on Control Flow and Data Flow
Kaufmann et al. Database Modeling
Pennington et al. The EcoGrid and the Kepler Workflow System: A new platform for conducting ecological analyses
Hemment et al. Advancing scholarship through the research data program
Mucchetti BigQuery for Data Warehousing
Usachev et al. IIoT Competencies Support in the Master's Program" Automation of technological Processes and Production"

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
C53 Correction of patent for invention or patent application
CB03 Change of inventor or designer information

Inventor after: Lin Liwei

Inventor after: Zou Hongmao

Inventor after: Ma Teng

Inventor after: Chen Mingping

Inventor after: Chen Wei

Inventor before: Lin Liwei

Inventor before: Zou Hongmao

COR Change of bibliographic data

Free format text: CORRECT: INVENTOR; FROM: LIN LIWEI ZOU HONGMAO TO: LIN LIWEI ZOU HONGMAO MA TENG CHEN MINGPING CHENWEI