(bt均為樹的根節點, 建立好樹的時候返回的是根節點,類似煉表頭指標)
// 先序遍歷
function
preorder
(bt)
console.
log(bt.data)
;preorder
(bt.left)
;preorder
(bt.right);}
// 中序遍歷
function
inorder
(bt)
inorder
(bt.left)
; console.
log(bt.data)
;inorder
(bt.right);}
// 後序遍歷
function
postorder
(bt)
postorder
(bt.left)
;postorder
(bt.right)
; console.
log(bt.data)
;}
dfs
// dfs遞迴
function
dfs(bt)
if(bt)
return res;
}// dfs非遞迴(利用棧-陣列)
function
dfss
(bt)
else
}return res;
}
bfs
// bfs - 層次遍歷
function
bfs(bt)
return res;
}
二叉樹DFS和BFS遍歷
public class treenode bfs廣度優先遍歷 使用queue實現bfs public void bfswithqueue treenode root dfs 深度優先遍歷 採用 遞迴棧 或者 棧 遞迴棧 dfs遞迴實現 public void dfswithrecursion tr...
二叉樹的建立與DFS遍歷
二叉樹具有如下性質 二叉樹的建立 根據二叉樹性質,其具有子結構模式,所以可以用遞迴辦法來建立。1.使用結構體 指標的方式建立 2.用陣列建立 結構體加指標用了動態申請空間的辦法,但是這樣很容易導致指標的丟失而出現記憶體洩漏 意味著有些記憶體被浪費。使用陣列的方法本質上是一樣的,首先開三個陣列 dat...
二叉樹的遍歷 二叉樹遍歷與儲存
在資料結構中,二叉樹是非常重要的結構。例如 資料庫中經常用到b 樹結構。那麼資料庫是如何去單個查詢或者範圍查詢?首先得理解二叉樹的幾種遍歷順序 先序 中序 後序 層次遍歷。先序 根節點 左子樹 右子樹 中序 左子樹 根節點 右子樹 後序 左子樹 右子樹 根節點 按層級 class node if c...