當前位置:首頁 » 編程語言 » java平衡樹

java平衡樹

發布時間: 2024-09-14 12:48:13

1. 用java怎麼構造一個二叉樹

定義一個結點類:x0dx0apublic class Node {x0dx0a private int value;x0dx0a private Node leftNode;x0dx0a private Node rightNode;x0dx0a x0dx0a public Node getRightNode() {x0dx0a return rightNode;x0dx0a }x0dx0a public void setRightNode(Node rightNode) {x0dx0a this.rightNode = rightNode;x0dx0a }x0dx0a public int getValue() {x0dx0a return value;x0dx0a }x0dx0a public void setValue(int value) {x0dx0a this.value = value;x0dx0a }x0dx0a public Node getLeftNode() {x0dx0a return leftNode;x0dx0a }x0dx0a public void setLeftNode(Node leftNode) {x0dx0a this.leftNode = leftNode;x0dx0a }x0dx0a x0dx0a}x0dx0a x0dx0a初始化結點樹:x0dx0apublic void initNodeTree()x0dx0a {x0dx0a int nodeNumber;x0dx0a HashMap map = new HashMap();x0dx0a Node nodeTree = new Node();x0dx0a x0dx0a Scanner reader = new Scanner(System.in);x0dx0a x0dx0a nodeNumber = reader.nextInt();x0dx0a for(int i = 0; i < nodeNumber; i++) {x0dx0a int value = reader.nextInt();x0dx0a String str = reader.next();x0dx0a map.put(str, value);x0dx0a }x0dx0a x0dx0a if (map.containsKey("#")) {x0dx0a int value = map.get("#");x0dx0a nodeTree.setValue(value);x0dx0a setChildNode(map, value, nodeTree);x0dx0a }x0dx0a x0dx0a preTraversal(nodeTree);x0dx0a }x0dx0a x0dx0aprivate void setChildNode(HashMap map, int nodeValue, Node parentNode) {x0dx0a int value = 0;x0dx0a if (map.containsKey("L" + nodeValue)) {x0dx0a value = map.get("L" + nodeValue);x0dx0a Node leftNode = new Node();x0dx0a leftNode.setValue(value);x0dx0a parentNode.setLeftNode(leftNode);x0dx0a x0dx0a setChildNode(map, value, leftNode);x0dx0a } x0dx0a x0dx0a if (map.containsKey("R" + nodeValue)) {x0dx0a value = map.get("R" + nodeValue);x0dx0a Node rightNode = new Node();x0dx0a rightNode.setValue(value);x0dx0a parentNode.setRightNode(rightNode);x0dx0a x0dx0a setChildNode(map, value, rightNode);x0dx0a }x0dx0a }x0dx0a x0dx0a前序遍歷該結點樹:x0dx0apublic void preTraversal(Node nodeTree) {x0dx0a if (nodeTree != null) {x0dx0a System.out.print(nodeTree.getValue() + "\t");x0dx0a preTraversal(nodeTree.getLeftNode());x0dx0a preTraversal(nodeTree.getRightNode());x0dx0a }x0dx0a }

2. 怎麼用java編寫一個聖誕樹,我有圖,幫我改下就行

您好!我沒有懂您為什麼這么寫,我寫了一個簡單易懂的,代碼如下:

System.out.println("*");

System.out.println("* *");

System.out.println("**");

System.out.println("**");

System.out.println("*********");

System.out.println("**");

System.out.println("**");

System.out.println("**");

System.out.println("**");

格式有問題。。。,您看圖吧:

3. java的JTree的使用方法,

JTree組件被用來以樹的形式顯示數據,一層套一層,看起來清晰明了,使用戶很方便地就了解到各個節點之間的層次關系,可以很容易地找到相關的數據。

例如 Windows 系統的文件管理器,它就是一個典型的樹層次結構。


JTree的構造函數:

·JTree() 建立一棵默認的樹。

·JTree(Hashtable data) 利用Hashtable建立樹。

·JTree(Object[] data) 利用數組建立樹。

·JTree(TreeModel model) 利用TreeModel建立樹。

·JTree(TreeNode root) 建立以root為根的樹。

·JTree(TreeNode root,Boolean children) 建立以 root 為根的樹,並設定是否允許有子節點。

·JTree(Vector value) 利用Vector建立樹。


使用一個JTree可以簡單地像下面這樣表示:


importjavax.swing.JFrame;
importjavax.swing.JTree;
importjavax.swing.event.TreeSelectionEvent;
importjavax.swing.event.TreeSelectionListener;
importjavax.swing.tree.DefaultMutableTreeNode;

publicclassTreeDemo{
publicstaticvoidmain(String[]args){

//創建沒有父節點和子節點、但允許有子節點的樹節點,並使用指定的用戶對象對它進行初始化。
//publicDefaultMutableTreeNode(ObjectuserObject)
DefaultMutableTreeNodenode1=newDefaultMutableTreeNode("軟體部");
node1.add(newDefaultMutableTreeNode(newUser("小花")));
node1.add(newDefaultMutableTreeNode(newUser("小虎")));
node1.add(newDefaultMutableTreeNode(newUser("小龍")));

DefaultMutableTreeNodenode2=newDefaultMutableTreeNode("銷售部");
node2.add(newDefaultMutableTreeNode(newUser("小葉")));
node2.add(newDefaultMutableTreeNode(newUser("小雯")));
node2.add(newDefaultMutableTreeNode(newUser("小夏")));

DefaultMutableTreeNodetop=newDefaultMutableTreeNode("職員管理");

top.add(newDefaultMutableTreeNode(newUser("總經理")));
top.add(node1);
top.add(node2);
finalJTreetree=newJTree(top);
JFramef=newJFrame("JTreeDemo");
f.add(tree);
f.setSize(300,300);
f.setVisible(true);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//添加選擇事件
tree.addTreeSelectionListener(newTreeSelectionListener(){

@Override
publicvoidvalueChanged(TreeSelectionEvente){
DefaultMutableTreeNodenode=(DefaultMutableTreeNode)tree
.getLastSelectedPathComponent();

if(node==null)
return;

Objectobject=node.getUserObject();
if(node.isLeaf()){
Useruser=(User)object;
System.out.println("你選擇了:"+user.toString());
}

}
});
}
}

classUser{
privateStringname;

publicUser(Stringn){
name=n;
}

//重點在toString,節點的顯示文本就是toString
publicStringtoString(){
returnname;
}
}

4. 怎樣用Java實現一個多叉樹數據結構

這是一個典型的多叉樹問題! 最早的祖先用根節點表示,以下依次是他的/她的子女。這個就組成一棵樹。 每一棵樹的數據包括了: 名稱、父節點指針、第一個孩子的指針、配偶指針、下一個兄弟姐妹的指針

熱點內容
php電子商務網站 發布:2024-09-18 16:20:07 瀏覽:255
IQ怎麼編程 發布:2024-09-18 16:11:34 瀏覽:675
mysqlphpdll 發布:2024-09-18 16:11:27 瀏覽:613
編程貓按鍵 發布:2024-09-18 15:44:45 瀏覽:309
列印機如何連接到列印伺服器上 發布:2024-09-18 15:31:14 瀏覽:147
電腦創建伺服器手機能不能進入 發布:2024-09-18 15:21:23 瀏覽:818
linuxg編譯 發布:2024-09-18 15:12:49 瀏覽:92
現代電視密碼是多少 發布:2024-09-18 15:08:41 瀏覽:793
pythonsumfor 發布:2024-09-18 15:00:39 瀏覽:435
數據與存儲 發布:2024-09-18 14:53:06 瀏覽:471