周萍
【摘要】在當前我國的計算機技術得到迅速發(fā)展過程中,在軟件的設計開發(fā)領域也有了很大幅度的進步,其中在數(shù)據(jù)結構可視化方面是軟件可視化的一個重要分支領域,在數(shù)據(jù)結構和算法的方面上最為艱難的就是其抽象性以及動態(tài)性,在獲取的數(shù)據(jù)手段的逐漸增多的發(fā)展下,一些大規(guī)模的科學研究對數(shù)據(jù)量的處理也隨之增多。本文主要就數(shù)據(jù)結構可視化類庫的設計以及實現(xiàn)進行分析探究,希望能夠通過此次的研究對實際起到一定的指導作用。
【關鍵詞】數(shù)據(jù)結構;可視化;設計
引言
在我國的科學技術得到迅速發(fā)展的過程中,科學計算的工作量也開始變得愈來愈大,可視化的方法能夠有效的幫助工作人員進行獲取更多的信息,從而更為直觀的來對計算的結果進行分析。由于受到計算機性能以及軟件平臺限制,在最初的可視化軟件系統(tǒng)方面都是在高性能圖形工作站進行發(fā)展的,對數(shù)據(jù)結構可視化類庫的設計能夠有效的將效率得到提高。
1.數(shù)據(jù)結構可視化類庫設計的重要性及目的
1.1數(shù)據(jù)結構可視化類庫設計的重要性。在使用以及學習數(shù)據(jù)結構和程序設計過程中,實現(xiàn)數(shù)據(jù)結構的可視化能夠有效的提高對數(shù)據(jù)結構的直觀分析,從而加深理解。在對程序進行調試的過程中,通過數(shù)據(jù)結構可視化類庫能夠有效的將編程的效率得以提高[1]。從目前的發(fā)展情況來看,已經(jīng)有了諸多的應用廣泛的可視化集成開發(fā)環(huán)境,其中最為常見的就是Visual C++等,這些可視化的集成開發(fā)環(huán)境簡化了程序界面的設計,對編寫界面的程序降低了難度,從而有效的提高了軟件的開發(fā)效率。
1.2數(shù)據(jù)結構可視化類庫設計的目的。在數(shù)據(jù)結構可視化類庫設計的目的上就是使得JVDSCL能夠比較容易的在不同用途中進行應用,這就是要加強其靈活性,JVDSCL能夠直接的應用到軟件應用程序的開發(fā)方面,在開發(fā)人員方面也能夠通過JVDSCL來進行對新的數(shù)據(jù)結構進行構造,另外就是加強其可靠性的目的,在這一方面是JVDSCL的最為主要的目的,還有就是面向對象的目的,數(shù)據(jù)結構是JVDSCL的主要對象,同時算法也是對象,它們保存運行的結果以及提供訪問結果的接口[2]。
2.數(shù)據(jù)結構可視化類庫的設計和實現(xiàn)探究
2.1數(shù)據(jù)結構可視化類庫的設計探究。在對數(shù)據(jù)結構可視化類庫進行設計的過程中,要對問題進行綜合性的考慮,其中在JVDSCL方面它主要是在Java集合庫基礎上來進行對原有的數(shù)據(jù)結構類中進行的擴展,與此同時也在這一過程中添加了相應的較為復雜化的數(shù)據(jù)結構,最為常見的就是樹圖。在JVDSCL過程中對可視化數(shù)據(jù)結構進行構造來實現(xiàn)數(shù)據(jù)結構的可視化,而這一可視化的數(shù)據(jù)結構也是在Java集合庫當中的原有數(shù)據(jù)結構類的操作基礎上進行的,另外就是增添了一些可視屬性以及對可視化的接口進行了提供。在每種數(shù)據(jù)結構都會有著多種顯示的模式,這就需要開發(fā)人員進行有機的選擇,而在JVDSCL當中,對于每種數(shù)據(jù)結構會有這多種布局的方法來對其加以布局。
在對數(shù)據(jù)結構可視化類庫進行設計的內容上主要就是基本的可視化接口的設計以及顯示模式和布局方法。其中在可視化接口的設計方面,最為主要的接口就是V Collection接口,它不僅是能夠提供Collection接口的基本方法,同時也提供可視化接口,在這一內容上主要有 void draw,操作上就是重畫指定的數(shù)據(jù)結構,通過display Mode參數(shù)值來決定選用的顯示模式,在這一接口中的參數(shù)c是表示數(shù)據(jù)結構所顯示的顏色[3]。在顯示模式的設計當中,JVDSCL的每種數(shù)據(jù)結構都會有不相同的顯示模式,如下圖所表示的兩種模式。
另外,在布局的設計上,關于數(shù)據(jù)結構可視化的關鍵問題就是圖形的布局問題,這對于相關的研究人員對數(shù)據(jù)結構和算法的效果理解有著非常密切的關系。而在JVDSCL當中的最為主要的就是線性布局的方法以及圖布局的方法,針對于每種不同的布局在算法的實現(xiàn)上也是不同的[4]。其中在線性的布局方面,主要是能夠適用于隊列和線性表的數(shù)據(jù)結構,在對線性的布局方法上其基本的算法框架就是獲取數(shù)據(jù)的元素個數(shù)以及依靠著所顯示大小和數(shù)據(jù)元素個數(shù)進行對布局的大小值進行計算。如下圖所示。
在圖布局的設計方面在算法上是屬于二維彈性模型的算法,最為基本的思想就是在二維平面上進行計算。這一方法比較的適合圖等數(shù)據(jù)結構,在JVDSCL當中能夠提供的多種算法實現(xiàn)圖的可視化,其中有基于遺傳模擬退火算法圖的三維可視化以及以上所說的二維彈性模擬算法等??梢暬夹g的主要目的就是來輔助人們增強認知上的能力,而在計算機的可視化技術方面能夠將其作為是信息的處理工具,以此來考慮多樣化的樣本以及變量和聯(lián)系。
另外,對于只描述節(jié)點間的關系的數(shù)據(jù)可以通過樹布局的方法進行確定樹節(jié)點的坐標,其最基本的方法就是若樹非空后跟遍歷樹,在這一方法上主要就是先設置整棵樹的最左下的結點位置,從左到右要進行依次遍歷結點的每棵子樹然后再返回子樹的結點位置進行設定下一棵子樹最左結點的位置。主要就是要能夠滿足所有的樹節(jié)點不相交不重合,要能夠等距排列,還有就是所有的葉子節(jié)點相對于根節(jié)點要成等要排列。
2.2數(shù)據(jù)結構可視化類庫的實現(xiàn)分析。在數(shù)據(jù)結構的可視化類庫的實現(xiàn)方面由于本論文的篇幅有限簡要進行講述,數(shù)據(jù)結構動態(tài)演示系統(tǒng)演示了各種不同算法的數(shù)據(jù)結構變化的過程,這還需要相關的設計人員在大量的畫圖操作上得以實現(xiàn),比如對鏈表的結點的繪制,對于JVDSCL的應用就不需要自己來編碼就能夠實現(xiàn)畫圖的操作,在動態(tài)演示系統(tǒng)方面有了很大程度上的層次性提高,在這一過程中設計人員不需對數(shù)據(jù)結構的布局進行考慮,在JVDSCL自身已經(jīng)有了布局的功能,只需要根據(jù)自身的的需要來進行重寫即可實現(xiàn)。另外,在對數(shù)據(jù)結構中的draw()進行調用也能夠有效的實現(xiàn)數(shù)據(jù)結構的可視化。
3.結語
總而言之,對于數(shù)據(jù)結構的可視化類庫的設計以及實現(xiàn)能夠有效的將軟件的重用性和擴展性得到提高,在JVDSCL的基礎上進行對其加以設計,對軟件的開發(fā)設計的效率有了明顯的提高,在未來我國的軟件技術設計水平不斷提升的過程中,也定能夠在這一領域取得更加優(yōu)異的設計成果。
參考文獻
[1]楊曉波,陳邦澤.數(shù)據(jù)結構課程實踐教學體系研究[J].實驗技術與管理,2013,(08).
[2]馮月華.《數(shù)據(jù)結構》課程改革下的一堂教學實例——最小生成樹[J].隴東學院學報,2014,(03).
[3]張建嬌.計算機軟件基礎數(shù)據(jù)結構之算法分析[J].無線互聯(lián)科技,2013,(10).
[4]牛小飛,李盛恩,張冬梅,宋玲,湯曉兵.關于數(shù)據(jù)結構中遞歸的教學探討[J].山東建筑大學學報,2011,(06).