packagecom.data.tree;
public
class
bitree
packagecom.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...