二叉樹的前中後層遍歷

2022-01-29 21:14:23 字數 1826 閱讀 8639

package

com.data.tree;

public

class

bitree

package

com.data.tree;

/*** classname treetest description todo

* @author

payphone

* @date 2023年12月24日 下午1:44:07

* @version

v1.0 */

public

class

treetest ;

treetest ts = new

treetest();

bitree tree = ts.createtree(new

bitree(), arr);

ts.levelorder(tree);

system.out.println(tree.tostring());

}/*** @title createtree

* @description 層序建二叉樹

* @param

bt *

@param

node

* @return

bitree

*/bitree createtree(bitree bt, string node)

else //

end if

//給出隊的節點建立右子樹

if (node[flag] == "#")

else //

end if

}

return

bt; }

/*** @title levelorder

* @description

* 二叉樹的層序遍歷

* 節點出隊列印 左右子樹入隊

* @param

tree

* @return

void

*/public

void

levelorder(bitree tree)

if(bt.right!=null

) }

}//先序遍歷

public

void

prenode(bitree tree)

}/** 先序遍歷思想: 先把左子樹一直入棧 左子樹到頭了在從棧中彈出元素 看彈出的元素是否有右節點 有就繼續按先序來

*/public

void

prenodeun(bitree tree)

else}}

public

void

prenodeun1(bitree tree)

if (tree == null

) }

}//中序遍歷

public

void

inorder(bitree tree)

//中序遍歷

public

void

inorderun(bitree tree)

if (tree == null

) }

}//後序遍歷

void

postorder(bitree tree)

//後序非遞迴

void

postorderun(bitree tree)

//左子樹訪問到頭了

if (tree == null

) else }}

}}

二叉樹的遍歷(前,中,後,層序)

二叉樹的遍歷是指從根節點出發,按照某種次序依次訪問二叉樹中所有節點,使得每個節點僅被訪問一次 前序遍歷 若二叉樹為空,則空操作返回,否則先訪問根節點,然後前序遍歷左子樹,再前序遍歷右子樹。結果是 abdghceif 中序遍歷 若樹為空,則空操作返回,否則從根節點開始 注意並不是先訪問根節點 中序遍歷...

二叉樹的前中後遍歷及層序遍歷

概念 二叉樹的遍歷是指從根結點出發,按照某種次序依次訪問二叉樹中的所有結點,使得每個結點被訪問一次且僅被訪問一次。樹遍歷的本質是將非線性結構線性化 深度優先遍歷 二叉樹的深度優先遍歷,分為如下三種 先左後右 廣度優先遍歷 與深度優先遍歷不同的是,廣度優先遍歷是先搜尋所有兄弟和堂兄弟結點再搜尋子孫結點...

二叉樹的遍歷(前中後)

總體來說分為遞迴和非遞迴實現 前序遍歷 二叉樹前序遍歷dlr public static void preorder treenode rootnode 前序非遞迴實現,借助棧,先進後出 param public static void preordernonrecursive treenode r...