陣列查詢快,增刪慢;鍊錶增刪快,查詢慢;二叉樹查詢和增刪都有很好的效能
package com.itheiam62;
/** * @描述 中序遍歷是有序的二叉樹(不重複)
* */
public
class
mytree
}/**
*@param data
* 傳遞的資料
*@return 父節點的值
*/private node findparrent(object data, node currentnode) else
}return parrent;
}public
void
update(object olddata,object newdata)
/*** 新增資料
* *@param data
* 要新增的資料
*/public
void
add(object data) else else }}
/***@param data
*@return 是否包含該資料
*/public
boolean
contains(object data)
private node find(object data) else
if (compare(data, temp.data)) else
}return temp;
}public
void
remove(object data) else
if (temp.right == null) else
if (temp.left == null) else
} else else
} else
if (temp.right == null) else
} else
if (temp.left == null) else
} else else }}
}}/***@param node
* 要刪除的節點
*@return 左兒子節點
*/private node getleft(node node)
/***@param o1
* 第乙個值
*@param o2
* 第二個值
*@return 如果o1 大於 o2 返回true 否則false
*/public
boolean
compare(object o1, object o2) else
} else
return res;
}// 遞迴列印
可以把右孩子新增到左孩子的右邊,或者把左孩子新增到右孩子的左邊
//node 要刪除的節點
java資料結構 二叉樹
二叉樹是有限個數的集合,該集合或者為空,或者有乙個稱為根元素以及兩個不相交的,被分別稱為根的左子樹和右子樹的二叉樹組成。相關概念 深度 樹中結點的最大層數稱為樹的深度。結點的度 結點所擁有的子樹的個數稱為該結點的度。葉節點 度 0的節點。滿二叉樹 乙個二叉樹的每一層結點個數都達到了最大,即為滿二叉樹...
java資料結構 二叉樹
樹是一種特殊的資料結構,他可以用來描述有分支的結構是由乙個或者乙個以上的有限集合組成,具有兩個屬性 一是存在乙個特殊的節點,成為樹根 二是其餘節點分為n 0個互斥集合,t1,t2,t3,tn,每個集合成為子樹。常用屬性如下 1 根節點 根節點是乙個沒有雙親結點的結點,一棵樹中最多有乙個根節點。2 結...
資料結構和演算法 二叉樹
二叉樹 樹的每個節點最多只能有兩個子節點。樹的效率 查詢節點的時間取決於這個節點所在的層數,每一層最多有2n 1個節點,總共n層共有2n 1個節點,那麼時間複雜度為o logn 底數為2。二叉搜尋樹要求 若它的左子樹不空,則左子樹上所有結點的值均小於它的根結點的值 若它的右子樹不空,則右子樹上所有結...