<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    邋遢居

    我的Java天堂

      BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
      61 Posts :: 2 Stories :: 90 Comments :: 0 Trackbacks

    用Graphviz顯示樹

    緣起

    前幾天不知道那根筋搭錯,又拿出了大學時候買的一本講算法的書翻了起來。想起當年學習Tree的時候,看著數據結構憑空去想那顆倒著的樹。那個叫做苦啊。所以就像有沒有什么辦法讓Tree自己畫出這樣的結構圖出來。

    動手

    既然想到了,就動手做把。因為以前用Graphviz畫過一點mindmap,類圖之類的小東西。讓我一下子就想到了,我只要能從Tree結構中方便的輸出成一個能繪制出對應樹結構的Graphviz腳本就可以。這應該是代價最小的做法。 呵呵,廢話不多說了。看看的Tree的代碼吧!

     @Override
        
    public String toString() {
            StringBuffer strValue 
    = new StringBuffer();
            StringBuffer rout 
    =  new StringBuffer("{rank=same ");
            
            
    if(getLeftTree()  != null ) {
                strValue.append(root).append(ARROW).append( getLeftTree().getTreeNode()).append(
    ";\r").
                            append( getLeftTree());
                rout.append(getLeftTree().getTreeNode() ).append(ARROW).append(EXTEND).append(root);
          
            }
            
            strValue.append(EXTEND).append(root).append(
    "[label=\"\",width=.1,style=invis];\r");
            strValue.append(root).append(ARROW).append(EXTEND).append(root).append(
    "[style=invis];\r");
         
            
    if(getRightTree() != null) {
                strValue.append(root).append(ARROW).append( getRightTree().getTreeNode()).append(
    ";\r").
                append( getRightTree());
           
                rout.append(ARROW).append(getRightTree().getTreeNode());
            }
            strValue.append(rout).append(
    " [style=invis] } ;\r");
            
    return strValue.toString();
        }

    產生腳本的動作全部在這里完成了。我通過如下代碼創建了一顆樹

           ITree<Integer> tree = new TreeImpl<Integer>(6);   
            tree.addNode(
    3);
            tree.addNode(
    16);
            tree.addNode(
    5);
            tree.addNode(
    4);
            tree.addNode(
    2);
            tree.addNode(
    10);
            tree.addNode(
    30);

    最后得到的一副如下的圖

    呵呵,這樣的話就可以隨時查看樹的結構了,我們所需要做的只是把object toString一下就可以。

    附上一些文件

    演示的錄屏文件

    完整的代碼 

    posted on 2010-08-11 12:59 Jet Geng 閱讀(3817) 評論(1)  編輯  收藏 所屬分類: 開源軟件使用

    Feedback

    # re: 用Graphviz顯示樹 2010-09-09 21:06 xu
    代碼,是單元調試的嗎?運行不了,寫了一個測試的main的代碼.graphviz怎樣在結點旁邊添加標注啊?比如結點的左邊.謝謝!  回復  更多評論
      

    主站蜘蛛池模板: **毛片免费观看久久精品| 免费人成网站在线播放| 亚洲色少妇熟女11p| 亚洲国产精品丝袜在线观看| 免费国产污网站在线观看15| 亚洲欧美日本韩国| 亚洲色欲色欲www在线丝 | 免费中文字幕视频| 亚洲AV成人一区二区三区AV| 无码中文字幕av免费放| 国产成人1024精品免费| 亚洲欧洲日产国码www| 亚洲精品久久久www| 18禁网站免费无遮挡无码中文 | 狠狠热精品免费观看| 亚洲一区二区电影| 国产男女性潮高清免费网站 | 国产偷国产偷亚洲高清日韩| 妻子5免费完整高清电视| 国产成人无码免费看片软件| 亚洲一级毛片视频| 亚洲精品无码永久中文字幕| 免费无遮挡无码视频网站| 人妻无码一区二区三区免费 | 免费真实播放国产乱子伦| 97视频免费观看2区| 人人公开免费超级碰碰碰视频| 精品久久亚洲中文无码| 好看的亚洲黄色经典| 少妇亚洲免费精品| 免费电影在线观看网站| 免费国产黄网站在线观看视频| 一级毛片免费不卡直观看| 亚洲国产一区二区三区在线观看 | 亚洲精品亚洲人成在线播放| 国产精品亚洲аv无码播放| 亚洲 国产 图片| 麻豆国产入口在线观看免费| 成年人网站免费视频| 亚洲精品免费在线观看| 黄色免费在线网站|