樹形結構(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時代 自我安慰一...