J2ME樹形結構實現

2021-05-23 21:47:36 字數 1859 閱讀 5309

樹形結構(tree)是比較常用的資料結構了,midp中沒有它的身影,不然我就不用寫這篇文章了。

**如下:

/**

* * @author hunhun1981

*/public

class htree

public

void goroot(

)public

boolean gochild(

int index)

return

true;

}}return

false;

}public

void goback()}

public

object

getcurrent(

)public

int getcurrentdepth(

)public

int getmaxdepth(

)public

object

getchilds(

)return ret;

}}return

null;

}public

object

getchild(

int index)

}return

null;

}public

void addchild(

object

obj)

current.childlist.addelement

(new hnode(current, obj)

); }

public

void addchilds(

object

objs)

for(

int i = 0; i < objs.length; i++)

}public

int haschild(

)else

}private

class hnode

}}

這個類實現簡單,沒有包含複雜的功能,僅僅用來做樹形資料的儲存還是不錯的。比如遊戲中用來管理場景,管理資源;應用中用來作分類資料的表現等等。完全足以勝任。

使用方法如下:

htree tree = new htree(」root」);//會自動建立乙個預設的根節點

tree.addchild(」天才」);//在根節點新增新的節點

tree.addchild(」白痴」);

tree.gochild(0);//進入到當前節點的第乙個節點(天才)。

tree.addchild(」天才1號」);//在當前節點(天才)新增新的節點

tree.addchild(」天才2號」);

tree.goback();//返回當前節點(天才)的父節點(根)

tree.gochild(1);//進入到當前節點的第二個節點(白痴)。

tree.addchild(」白痴1號」);//在當前節點(白痴)新增新的節點

tree.addchild(」白痴2號」);

tree.goroot();//完成建立後將當前節點設定為根節點。

…上面的**建立了一棵完整的樹,當然,您可以使用任何物件代替這裡儲存的string物件。

還有一些方法,一看函式名大概都能明白,就不再嘮叨了。

遍歷的方法於上面建立樹的方法相似,總之,要注意當前節點的位置,以免下次使用時處在錯誤的位置。

有興趣的朋友可以擴充套件一下遍歷方法。不過我覺得沒必要。因為j2me環境下更需要的是樹形結構,而不是強大的tree物件。

總之,我比較傾向於簡單實現,希望它不太讓人覺得簡陋就好。從實用出發,它還是能夠滿足大部分受限平台的需求的。 

**: hunhun1981的專欄 。

j2me實現雙緩衝

j2me程式中,如果我們先前程式設定的螢幕大小為240x300,為了在240x320螢幕繪製時自適應居中我們可以使用雙緩衝來實現 gamescreen中 定義變數 public final static int screenw 240 程式原來的寬度 public final static int ...

J2ME 文字滾動

private int tipstringpos screen width 當前字串左邊的位置 private int tipstringspeed 2 字串移動速度 private static final int tipstr left 5 5 左邊消失繪製座標 private static f...

j2me記憶體優化

out momory 一陣天旋地轉記憶體又溢位了。在手機上這種痛苦經常都有,套一句俗話在手機上用記憶體必須勒緊褲腰帶。雖然現在pc記憶體上g都不奇怪,可是在手機上卻只能以k來記,可能某位同志會馬上跳出來說也有上m的,記住中國還不富大多數手機都是低端手機。寫手機程式讓我彷彿回到了dos時代 自我安慰一...