Java技術積累遞迴呼叫 解析樹的基本實現原理

2021-07-05 08:44:03 字數 1522 閱讀 3335

在做專案的過程中,經常會用到樹結構。關於樹結構的框架我也接觸過幾個,比如easyui中封裝的樹,ztree等。當然這些封裝好的框架只需要我們去按照api來使用即可,那麼樹的實現原理究竟是怎樣的。今天用最原始的**來拼接一下樹的組成結構。

效果:

要想出現樹結構,那麼資料庫中必須包含有可以形成樹結構的表,也就是可以區分出父節點和子節點。

id:節點id,pid;父節點id,level:等級標誌(根節點為0,根的一級子節點為1,一次類推),name:節點名稱

is_leaf:是否為葉子節點

在寫這個方法前,首先要建立乙個stringbuffer,用來講這些html拼接成乙個完整的字串。

private stringbuffer sbtreehtml=new stringbuffer();

/**

* 遞迴讀取分銷商樹

* * 第四步,生成樹結構

* @param conn

* @param id

* @param level 控制層次

*/private void readclienttree(connection conn,int id,int level)

throws sqlexception

通過以上描述,樹結構基本上就已經成型了。剩下的就是在前台頁面中呼叫此方法即可。

接下來就是對樹的操作了。

分析一下,增刪改,只有刪除是相對複雜的。它需要考慮的因素比較多,和查詢類似,需要考慮是否為葉子節點,如果為非葉子節點,那麼就需要進行遞迴刪除它的子節點。還要考慮,刪除的節點的父節點下面還有沒有其他的子節點,如果沒有需要更改父節點為葉子節點。

/**

* 遞迴刪除

* @param conn

*/public void recursiondelnode(connection conn,int id)

throws sqlexception

//執行刪除操作

delnode(conn,rs.getint("id"));

}//刪除自身節點

delnode(conn,id);

}catch(sqlexception e)finally }

/*** 刪除節點

* @param conn

* @param id

*/public void delnode(connection conn,int id)

throws sqlexceptioncatch(sqlexception e)finally

}

以上就是整個關於拼接樹結構的核心部分了。樹是web端常用的介面效果,利用它在很多方面可以清晰的表達組織結構,給大家一目了然的效果,了解它的原理以應萬變!

java 遞迴呼叫

遞迴呼叫是呼叫自身的函式,並傳給自身的相應的引數,這一運算過程是一層層的進行的,直到滿足一定條件時,才停止呼叫。遞迴函式的特點 1.函式要直接或間接呼叫自身。2.要有遞迴終止條件檢查,即遞迴終止的條件被滿足後,則不再呼叫自身函式。3.如果不滿足遞迴終止的條件,則呼叫涉及遞迴呼叫的表示式 在呼叫函式自...

java中的遞迴呼叫

b 1 遞迴函式的定義 b 答 遞迴函式即自呼叫函式,在函式體內直接或間接的呼叫自己,即函式的巢狀是函式本身。2 遞迴方式 遞迴呼叫有直接遞迴和間接遞迴兩種方式。a 直接遞迴 在函式中出現呼叫函式本身。示例1 下面 求斐波那契數列第n項,斐波那契數列第一和第二項是1,後面每一項是前兩項之和,即1 1...

Java遞迴生成樹

注意 根節點的pid 0,其他節點的pid跟id是有對應的父子關係的。這裡只展示遞迴生成樹的 查詢資料庫的操作非常簡單,只用到了一句sql,然後將結果封裝成list。select id,pid,name from t menu service override public list tree 遞迴...