英特內軟體股份有限公司


jcx.servlet.common
Class treeServlet

jcx.servlet.Servlet
  |
  +--jcx.servlet.common.htmlServlet
        |
        +--jcx.servlet.common.multiStepServlet
              |
              +--jcx.servlet.common.treeServlet
Direct Known Subclasses:
customerServlet, treeServletInstance

public abstract class treeServlet
extends multiStepServlet

 樹狀類別的程式,如目錄管理,會員管理,組織圖管理,
 都可以此為基礎發展元件。
若資料資訊為下:
String[][] data=new String[10][3];
     //data[i][0]=i節點key值
     //data[i][1]=i節點的父節點
     //data[i][2]=i節點的資料
     //必定要存在一個根節點(root),使得data[i][1]="";
data[0][0]="A";
data[0][1]="";
data[0][2]="最高節點A";
data[1][0]="B";
data[1][1]="A";
data[1][2]="B節點";
data[2][0]="C";
data[2][1]="A";
data[2][2]="C節點";
data[3][0]="D";
data[3][1]="A";
data[3][2]="D節點";
data[4][0]="E";
data[4][1]="B";
data[4][2]="E節點";
data[5][0]="F";
data[5][1]="B";
data[5][2]="F節點";
data[6][0]="G";
data[6][1]="B";
data[6][2]="G節點";
data[7][0]="H";
data[7][1]="D";
data[7][2]="H節點";
data[8][0]="I";
data[8][1]="D";
data[8][2]="I節點";
data[9][0]="J";
data[9][1]="H";
data[9][2]="J節點";


Fields inherited from class jcx.servlet.Servlet
files, req, resp
 
Constructor Summary
treeServlet()
           
 
Method Summary
static boolean addNode(java.lang.String[] data)
          新增節點
static boolean delNode(java.lang.String node)
          刪除節點(其所有子孫節點皆刪除)
static java.lang.String[][] getAncestors(java.lang.String node)
          取的所有祖先的節點
static java.lang.String[][] getChilden(java.lang.String node)
          取得 node 節點的子節點
static int getHight()
          取得樹的高度
static treeServlet GetInstance()
          取得 treeServlet 的 Instance
static treeServlet GetInstance(java.lang.String[][] data)
          取得 treeServlet 的 Instance
static java.lang.String[][] getLevelNode(int level)
          取得某一層(level)的所有節點
static java.lang.String[] getNode(java.lang.String node)
          取得某一節點(node)資料
static java.lang.String[][] getSiblings(java.lang.String node)
          取得所有兄弟節點
static java.lang.String[][] getTreeData()
          取得所有節點資料(以中序排序)
static boolean makeTree(java.lang.String[][] data)
           產生樹狀結構
static int NumberOfLevelNode(int level)
          取得某一層(level)的節點數
static int NumberOfSiblings(java.lang.String node)
          取得兄弟節點個數
static void updateNode(java.lang.String[] data)
          修改一節點的資料
 
Methods inherited from class jcx.servlet.common.multiStepServlet
run1, show_step_not_found
 
Methods inherited from class jcx.servlet.Servlet
addCookie, checkClientTrusted, checkServerTrusted, decode, equals, fromEscapeCode, getAcceptedIssuers, getClientProperty, getCookies, getFileInputStream, getFormData, getHeader, getInputStream, getMemoryInputStream, getMethod, getOutputStream, getParameter, getPath, lzw_decompress, returnAuthenticateResponse, returnAuthenticateResponse, returnErrorResponse, returnNormalResponse, run, setHeader, ToHtml, ToSql, verify
 

Constructor Detail

treeServlet

public treeServlet()
Method Detail

GetInstance

public static treeServlet GetInstance()
                               throws java.lang.Exception
取得 treeServlet 的 Instance
Returns:
treeServlet
See Also:
Ex:
    treeServlet ts=treeServlet.GetInstance();
    ts.makeTree(data);

GetInstance

public static treeServlet GetInstance(java.lang.String[][] data)
                               throws java.lang.Exception
取得 treeServlet 的 Instance
Parameters:
data - data[i][0]:樹的節點(node),是一個Key
data - data[i][1]:data[i][0]的父節點,若data[i][0]無父節點,則 data[i][1]="";
data - 其餘欄位皆為該節點(data[i][0])的相關資料
Returns:
treeServlet
Ex:
    treeServlet ts=treeServlet.GetInstance(data);
See Also:
makeTree(java.lang.String[][])

makeTree

public static boolean makeTree(java.lang.String[][] data)
                        throws java.lang.Exception
產生樹狀結構
Parameters:
data - data[i][0]:樹的節點(node),是一個Key
data - data[i][1]:data[i][0]的父節點,若data[i][0]無父節點,則 data[i][1]="";
data - 其餘欄位皆為該節點(data[i][0])的相關資料
Returns:
ture Tree建立成功,false Tree建立失敗
產生樹狀結構----makeTree(data);
                 A                       <---------level 1
                 |
       ----------+----------
      |          |          |
      B          C          D            <---------level 2
      |                     |
   ---+---                --+--
  |   |   |              |     |
  E   F   G              H     I         <---------level 3
                         |
                         J               <---------level 4

getNode

public static java.lang.String[] getNode(java.lang.String node)
                                  throws java.lang.Exception
取得某一節點(node)資料
Parameters:
node - 欲取得之節點
Returns:
node的資料
Ex:
    String node="B";
    String[] str=getNode(node);
   //則:
   //str[0]="B";
   //str[1]="A";
   //str[2]="B節點";

getAncestors

public static java.lang.String[][] getAncestors(java.lang.String node)
                                         throws java.lang.Exception
取的所有祖先的節點
Parameters:
node - 欲取得一節點之祖先
Returns:
傳入節點的所有祖先節點資料
Ex:
   String[][] str=getAncestors("E");
   //則 str[0][0]="A",str[0][1]="",str[0][2]="最高節點A";
   //   str[1][0]="B",str[1][1]="A",str[1][2]="B節點";

getChilden

public static java.lang.String[][] getChilden(java.lang.String node)
                                       throws java.lang.Exception
取得 node 節點的子節點
Parameters:
node - 取得node的子節點
Returns:
此 node 的所有子節點
Ex:
    String[][] str=getChilden("B");
    //則 str[0][0]="E"、、、、、。
    //   str[1][0]="F"、、、、、。
    //   str[2][0]="G"、、、、、。

getSiblings

public static java.lang.String[][] getSiblings(java.lang.String node)
                                        throws java.lang.Exception
取得所有兄弟節點
Parameters:
node - 取得 node 所有兄弟節點

getHight

public static int getHight()
                    throws java.lang.Exception
取得樹的高度
Returns:
樹的高度
 Ex:
   int hight=getHight();
   //則hight=4

NumberOfSiblings

public static int NumberOfSiblings(java.lang.String node)
                            throws java.lang.Exception
取得兄弟節點個數
Parameters:
node - 取得 node 所有兄弟節點數

getLevelNode

public static java.lang.String[][] getLevelNode(int level)
                                         throws java.lang.Exception
取得某一層(level)的所有節點
Parameters:
level - level=1:為樹的根節點
Returns:
在 level 層中的節點
Ex:
   String[][] str=getLevelNode(3)
   //則 str[0][0]="E"、、、、。
   //   str[1][0]="F"、、、、。
   //   str[2][0]="G"、、、、。
   //   str[3][0]="H"、、、、。
   //   str[4][0]="I"、、、、。

NumberOfLevelNode

public static int NumberOfLevelNode(int level)
                             throws java.lang.Exception
取得某一層(level)的節點數
Parameters:
level - level=1:根節點所在的位置
Returns:
在 level 層中的節點數
Ex:
    int num=NumberOfLevelNode("3");
    //則 num=5

addNode

public static boolean addNode(java.lang.String[] data)
                       throws java.lang.Exception
新增節點
Parameters:
data[0] - 此節點的Key值
data[1] - 此節點的父節點。
data[i] - i>=2,此節點其餘的資料
Returns:
true 新增成功

delNode

public static boolean delNode(java.lang.String node)
                       throws java.lang.Exception
刪除節點(其所有子孫節點皆刪除)
Parameters:
node - 刪除的節點
Returns:
true 刪除成功

getTreeData

public static java.lang.String[][] getTreeData()
                                        throws java.lang.Exception
取得所有節點資料(以中序排序)
Returns:
所有數的資料
Ex:
   String str[][]=getTreeData();
   //則資料產生順序為:A,B,E,F,G,C,D,H,J,I

updateNode

public static void updateNode(java.lang.String[] data)
                       throws java.lang.Exception
修改一節點的資料
Parameters:
data - 修改的節點資料

英特內軟體股份有限公司