二叉樹與多叉樹的遍歷

2022-09-04 12:48:11 字數 1994 閱讀 4451

二叉樹的順序儲存結構

二叉樹的順序儲存結構就是用一維陣列儲存二叉樹中的各個結點,並且結點的儲存位置能體現結點之間的邏輯關係。

二叉樹的遍歷

二叉樹的遍歷有三種方式,如下:

(1)先序遍歷(dlr),首先訪問根結點,然後遍歷左子樹,最後遍歷右子樹。簡記根-左-右。

(2)中序遍歷(ldr),首先遍歷左子樹,然後訪問根結點,最後遍歷右子樹。簡記左-根-右。

(3)後序遍歷(lrd),首先遍歷左子樹,然後遍歷右子樹,最後訪問根結點。簡記左-右-根。

假設dom結構如下:

<

div

id="tree"

>

<

div>

<

div>

<

div>

div>

<

div>

div>

div>

<

div>

<

div>

div>

<

div>

div>

div>

div>

<

div>

<

div>

<

div>

div>

<

div>

div>

div>

<

div>

<

div>

div>

<

div>

div>

div>

div>

div>

遍歷方式:

var arr =;

//遞迴先序遍歷

function

recurdlr(node)

arr.push(node);

recurdlr(node.firstelementchild);

recurdlr(node.lastelementchild);

} //遞迴中序遍歷

function

recurldr(node)

recurldr(node.firstelementchild);

arr.push(node);

recurldr(node.lastelementchild);

} //遞迴後序遍歷

function

recurlrd(node)

recurlrd(node.firstelementchild);

recurlrd(node.lastelementchild);

arr.push(node);

}

多叉樹結構遍歷

//

遞迴先序遍歷 先遍歷子節點 再遍歷根節點

function

recurdlr(node)

arr.push(node);

for (let i = 0; i < node.children.length; i++)

}

} //

遞迴後序遍歷 先遍歷根節點 再遍歷子節點

function

recurlrd(node)

for (let i = 0; i < node.children.length; i++)

}arr.push(node);

} //層序遍歷 從根節點一層一層向下遍歷

//原理就是利用陣列的後進先出 儲存dom節點

function

recurldr(node)

}arr.push(del);

del =stack.shift();

}

}

二叉樹的遍歷 二叉樹遍歷與儲存

在資料結構中,二叉樹是非常重要的結構。例如 資料庫中經常用到b 樹結構。那麼資料庫是如何去單個查詢或者範圍查詢?首先得理解二叉樹的幾種遍歷順序 先序 中序 後序 層次遍歷。先序 根節點 左子樹 右子樹 中序 左子樹 根節點 右子樹 後序 左子樹 右子樹 根節點 按層級 class node if c...

二叉樹的建立與遍歷 二叉樹遍歷模板)

初學二叉樹,感覺之前鍊錶掌握不熟練導致接受有點難,現在做一些總結。本題其實就是根據給出的前序遍歷 包括空子樹 寫出相應的前序 中序和後序遍歷。廢話不多說,先看看題目 description 下面給出了教材中演算法6.4所示的演算法。status createbitree bitree t retur...

構建二叉樹 遍歷二叉樹

陣列法構建二叉樹 public class main public static void main string args 用陣列的方式構建二叉樹 public static void createbintree 把linkedlist集合轉成二叉樹的形式 for int j 0 j 最後乙個父節...