JS實現常見資料結構 二叉樹

2021-09-28 19:15:46 字數 2533 閱讀 5772

樹的特點:多層非線性資料結構。進行插入或搜尋時很快。

樹的方法:

add:向樹中插入乙個節點。

findmin:查詢樹中最小的節點。

findmax:查詢樹中最大的節點。

find:查詢樹中某個節點。

ispresent:判斷樹中是否存在某個節點。

remove:移除樹中的某個節點。

);// 樹的節點資訊

function

node

(data, left =

null

, right =

null

)function

mytree()

var node =

this

.root;

// 判斷根節點是否有值

if(node ===

null

)else

else

}else

if(v > n.data)

else

}else};

return

searchtree

(node);}

};// 查詢樹中最小的節點

this

.findmin

=function()

return node.data;};

// 查詢樹中最大的節點

this

.findmax

=function()

return node.data;};

// 查詢樹中某個節點

this

.find

=function

(v)else

if(node ===

null)}

return node;};

// 判斷樹中是否存在某個節點

this

.ispresent

=function

(v)if

(v < node.data)

else

}return

false;}

;// 移除樹中的某個節點

this

.remove

=function

(v)if

(v === n.data)

// 沒有左側子節點

if(n.left ===

null

)// 沒有右側子節點

if(n.right ===

null

)// 有兩個子節點,像刪除根節點一樣,去右側樹中找最小值,把這個最小值當成根節點,

// 再次呼叫刪除方法,把剛獲取的最小值在右側樹中刪除掉

var tempnode = n.right;

while

(tempnode.left !==

null

) n.data = tempnode.data;

n.right =

removenode

(n.right, tempnode.data)

;return n;

}else

if(v < n.data)

else};

this

.root =

removenode

(this

.root, v);}

;// 展示

this

.show

=function()

if(n.right !==

null)}

};myshow

(this

.root)

; console.

log(arr.

join

(' -> '))

;};}

script

>

div>

資料結構 二叉樹 反轉二叉樹

include using namespace std define maxsize 1000 struct binary tree node class queue queue queue void queue push binary tree node btn binary tree node ...

《資料結構》 二叉樹

二叉樹 是 n個結點的有限集,它或為空集,或由乙個根結點及兩棵互不相交的 分別稱為該根的左子樹和右子樹的二叉樹組成。二叉樹不是樹的特殊情況,這是兩種不同的資料結構 它與無序樹和度為 2的有序樹不同。二叉樹的性質 1 二叉樹第 i層上的結點數最多為 2 i 1 2 深度為 k的二叉樹至多有 2 k 1...

資料結構 二叉樹

1.二叉樹 二叉樹是一種特殊結構的樹,每個節點中最多有兩個子節點,如圖1所示 圖1 二叉樹 在圖1中的二叉樹裡,a c有兩個子節點,b d有乙個子節點。對於二叉樹還有圖2中的以下情況 圖2 二叉樹的特殊情況 在博文中還介紹了滿二叉樹和完全二叉樹還有其他的特殊二叉樹。2.二叉樹的實現 有兩種實現方式,...