二叉樹演算法(java)

2021-07-02 14:32:14 字數 2268 閱讀 2763

為什麼實用二叉樹

一,在有序陣列中插入刪除資料太慢

1插入或者刪除一條資料會移動後面的所有資料  

二,在鍊錶中查詢資料太慢

2查詢只能從頭或者尾部一條一條的找

用樹解決問題

有沒有一種插入和刪除像鍊錶那麼快,查詢可以向有序陣列一樣查得快那樣就好了。

數實現了這些特點,稱為了最有意思的資料結構之一

樹的術語

如下圖

樹分平衡樹和非平衡樹

二叉樹的類

public class tree 

/*** 構造方法

* * @param root

* 跟節點

*/public tree(node root)

}class node

}

二叉樹插入功能

* 插入節點

* * @param key

* key

* @param value

* 值

*/public void insert(int key, object value) else else

} else else }}

} }二叉樹的查詢功能

* 查詢節點

* * @param key

* @return

*/public node find(int key) else

if (currentnode == null)

}} return currentnode ;

}二叉樹的展示功能(中序遍歷)

}測試

完整**

package tree;

/** * 二叉樹

* * @author jyc506

* */

public class tree

/*** 構造方法

* * @param root

* 跟節點

*/public tree(node root)

/*** 查詢節點

* * @param key

* @return

*/public node find(int key) else

if (currentnode == null)

}} return null;

} /**

* 插入節點

* * @param key

* key

* @param value

* 值

*/public void insert(int key, object value) else else

} else else }}

} }/**

* 展示

*/public void show()

/*** 中序遍歷

* * @param node

*/private void show(node node)

} public static void main(string args)

}class node

}

Java 二叉樹演算法

二叉樹演算法的排序規則 1 選擇第乙個元素作為根節點 2 之後如果元素大於根節點放在右子樹,如果元素小於根節點,則放在左子樹 3 最後按照中序遍歷的方式進行輸出,則可以得到排序的結果 左 根 右 二叉樹演算法的核心類,此類只提供了新增和列印輸出的方法 package com.lym.binarytr...

java 二叉樹實現演算法

package zxx.new 二叉樹演算法實現 author zhaoxin version public class binarytree public binarytree object objects public boolean insert object o else else if c...

二叉樹相關演算法(Java)

二叉樹的非遞迴遍歷 其他相關演算法 輸入一顆二叉樹的根結點,求該樹的深度。從根結點到葉結點依次經過的結點 含根,葉子結點 形成一條路徑,最長路徑的長度為樹的深度 public int treedepth treenode root int left treedepth root.left int r...