周佳宁++冯俊安
摘 要 本文将介绍笔者构想的数据结构可视化类库,它将可视化技术的加入到了数据结构类库,使得数据结构能够被直观可视。同时,给出了扩充数据结构类库的途径,以及达成多种数据结构可视化安排算法的一般模型。数据结构可视化类库能够在程序的调试以及软件的开发上起到作用,并有助于提升软件的可视性、实用性和开发的速度。
【关键词】数据结构 类库 可视化
1 引言
数据结构可视化属于软件可视化的一个枝干学科。软件可视化设计一图形来表达和监测预设格式的程序,以完成程序整体的可视化。程序可视化技术一般可以分成四大类:事件驱动、状态驱动、自动动画以及可视化设计。
使用事件驱动的系统比较为人熟知的有ANIMAL系统,若是用这种途径,就需要在程序要求可视化的区域使用interest-ing envents在加以注释,对应的表现动画也要在考虑到interest-ing envents的前提下编制。使用状态驱动的系统主要有LEONARDO等。所谓状态驱动,指的是指在程序与可视化情况下设计一个映射关系,它一般会在程序开始执行前就被可视化工具所指出。选择可视化设计是旨在使用可视符号来将程序命令和句子加以表达,从而让程序更容易被理解。使用自动动画的系统主要有Jeliot等。Jeliot的原理是使用可视解释器来完成以数据类型为基本的self-animation:开发者在源代码中选取需要被可视的数据种类,Jeliot就能自行生成演示动画。
笔者研究的数据结构可视化类库把可视化技术加进了数据结构类库,找出了一种能够可视化扩充数据结构类的途径:构建可视数据结构。这种结构在原本数据结构的一般属性和操作的前提下,新增可视功能,并给出相应的接口。这一方式的特点是可以不使用可视解释器就能达成数据结构的可视化解释,以调用它的可视化接口的形式即可达成数据结构的全自动可视。数据结构可视化类库提升了软件的开发速度和重用性,它能够广泛用于程序的调试和软件的制作。
2 数据结构可视化类库的重要性及目的
2.1 数据结构可视化类库的重要意义
在应用和学习数据结构以及程序具体设计时,如果能达成数据结构的可视化,就能更好的提升的对数据结构的直观解析,进而加快理解速度。在调试程序时,使用数据结构可视化类库能更好的提升编程的整体速度。从当前的发展而言,已经有不少使用比较广泛的可视化集成开发软件,比较常见的就是Visual C++。这样的视化的集成开发软件能让程序页面大大简化,也减少了编写程序页面的难度,使得软件开发速度能更多的上升。
2.2 数据结构可视化类库设计的目标
在数据结构可视化类库设计目标主要是能让数据结构可视化类库可以获得更多的用途和适应性。这就需要增加其灵活性。数据结构可视化类库可以直接在软件应用程序开发中使用的,开发者也能使用数据结构可视化类库来构造新的数据结构,此外也能增强其稳定性,而这也是数据结构可视化类库另一大应用目标之一。此外就是可以面向对象。数据结构可视化类库的对象主要是数据结构,当然算法也同样是,他们储存运行结构,并能给出输出访问结果的接口。
3 数据结构可视化类库的设计与实现
3.1 数据结构可视化类库的设计
在设计数据结构可视化类库时,应对待解决问题有整体上的考虑。在数据结构可视化类库中,一般是基于Java集合库的来就原本存在的数据结构类做出的扩展,在拓展的过程中也会新增一些对应的、比较繁复的数据结构,使用最多的就是树图。在数据结构可视化类库进程中就可视化数据结构做构建来达成数据结构的可视化,这样可视化的数据结构亦是以Java集合库的来就原本存在的数据结构类为操作前提完成的,此外就是介入了部分可视属性并提供了可视化的接口。所有的数据结构都有着多樣的显示模式,而这就要开发者做出权衡和选择了。在数据结构可视化类库中,所有的数据结构都存在多种布局的方式来对其进行布局。
设计对数据结构可视化类库的最主要部分就是对基本的可视化结构的编制,以及对应的显示形式、布局方式。在构建可视化接口时,比较关键的接口是V Collection接口,它不仅负担着提供Collection接口的任务,同时也能提供可视化接口,在此方面,一般有void draw,在操作上可以理解为重新绘制确定的数据结构,使用displayMode参数值来确定选择的显示方式,在此接口中的参数c代表了数据结构将呈现出的颜色。在设计显示模式时,数据结构可视化类库的各种数据结构的显示模式是不尽相同的,如图1所示。
此外,在设计布局方面,数据结构可视化需要解决的主要问题就是对于图形的布局。它的设计是和开发者对于数据结构和算法的效果了解程度有关的。在数据结构可视化类库中比较的关键的是线性布局的途径和图布局的措施,对于各种不同的布局,其算法也是有所差别的。而在其线性布局上,主要在于可以在队列和线性表的数据结构中使用上,在对线性的布局途径上,其一般算法架构是通过取得数据的元素数量,并凭借着所显示的大小以及数据元素的数量来就布局的具体值做出计算。
而图布局的设计如果按照算法来区分,它可以北归类为二维弹性模型算法,比较基础的思想就是二维平面上来做计算。此种方法在图等数据结构使用比较合适。在数据结构可视化类库中可以提供的多样算法以达成图的多样化。它包括在遗传模拟退火算法图基础上进行的三维可视化,还有上文提到过的二维弹性模拟算法。可视化技术最主要的作用就是能帮助增强开发者的认知,而在计算机可视化技术方面,可以把它看做是一种处理信息的工具,基于此来考虑更加多样的样本以及变量&联系。
此外,对于仅仅对节点之间管理的数据进行描述,应选择使用树布局的方式来对树坐标加以确定。通常使用的处理方式是若树非空后跟遍历树。这种方式的原理是要先设置处于树左下的节点位置,然后以从左到右的顺序来对节点的所有子树进行遍历,然后再回到子树的节点位置,对另一个子树最左节点位置进行设定。要做的使得全部树的节点没有相交重合的部分,做到排列完全等距离,此外就是全部的叶子节点以根节点做参照的话,应成等要排列
3.2 数据结构可视化类库的实现分析
限于篇幅,笔者数据结构的可视化类库的实现方面仅做简单的阐述。数据结构动态演示系统能对各类不同算法的结构数据库变化步骤进行表现,但这也需要开发者进行大量的画图操作才能都达成,例如在对链表阶段的绘制上,如果应用数据结构可视化类库就无须再自行编码,就能够完成画图工作,在动态演示系统的层面上有了层次性的提升,在这一步骤中开发者无需再考虑数据结构的布局,因为数据结构可视化类库本身就带有自动布局的功能,开发者所要做的就是按照自身需求来重制就就可以达成目标。此外,调用数据结构中的draw()也可以达成数据结构的可视化的目的。
4 结语
总的来说,设计并实现数据结构的可视化类库可以更好的的提升软件的重用性和扩展性,基于数据结构可视化类库来进行设计,能显著提升软件的开发设计的速度,并降低难度。在中国的软件技术设计能力日益提高的大背景下,我国开发者也可以在这此领域内获得更为出色的设计成果。
参考文献
[1]周维,周可人,栾钟治,姚绍文,钱德沛.基于共享内存的多核时代数据结构研究[J].软件学报,2016(04):1009-1025.
[2]陈忠菊.数据结构可视化类库的研发与应用[J].电脑编程技巧与维护,2014(21):46-47.
[3]虎治勤.多层数据结构设计在K-means下的实现[J].科技通报,2014(02):90-92+95.
[4]沈华.数据结构、算法和程序之间关系的探讨[J].计算机教育,2013(04):58-61.
[5]罗娜,李爱平,吴泉源,陆华彪.基于概要数据结构可溯源的异常检测方法[J]. 软件学报,2013(10):2899-2906.
作者简介
周佳宁(1995-),男,山西省太原市人。大学本科学历。
冯俊安(1996-),男,山西省大同市人。大学本科学历。
作者单位
山西农业大学信息学院 山西省晋中市 030801endprint