二叉樹的遍歷 遞迴方式

2021-08-20 12:59:40 字數 945 閱讀 2389

概述:用遞迴方式實現二叉樹的遍歷。

二叉樹結構

public class node

}

先序遍歷:先遍歷根結點,再遍歷左子樹,最後遍歷右子樹

public void preorderrecur(node head)

system.out.print(head.value + " ");//先遍歷根節點

preorderrecur(head.left);//遍歷左子樹

preorderrecur(head.right);//遍歷右子樹

}

中序遍歷:先遍歷左子樹,再遍歷根節點,最後遍歷右子樹

public void inorderrecur(node head)

inorderrecur(head.left);//遍歷左子樹

system.out.print(head.value + " ");//遍歷根節點

inorderrecur(head.right);//遍歷右結點

}

後序遍歷:先遍歷左子樹,再遍歷右子樹,最後遍歷根結點

public void posorderrecur(node head)

posorderrecur(head.left);//遍歷左子樹

posorderrecur(head.right);//遍歷右子樹

system.out.print(head.value + " ");//遍歷根節點

}

測試函式:

public static void main(string args)
執行結果:

二叉樹的遍歷方式(遞迴)

二叉樹的遍歷方式 遞迴 部落格摘要 一.什麼是二叉樹 簡述 二叉樹的每個結點至多只有二棵子樹 不存在度大於2的結點 二叉樹的子樹有左右之分,次序不能顛倒。二.四種遍歷 本篇部落格講述二叉樹的四種遍歷 前序遍歷,中序遍歷,後序遍歷,層序遍歷 1.前序遍歷 先訪問當前結點,再訪問當前結點的左子樹結點,最...

二叉樹的遍歷方式(遞迴 非遞迴)

二叉樹的前序 中序 後序遍歷方式,遞迴與非遞迴。層序遍歷的方式已經在之前的部落格中寫過 遞迴方式比較簡單。前序遍歷 void preorder treenode root 前序遍歷非遞迴 基本思路 利用棧。先輸出結點值,再入棧。然後遍歷左子樹。退棧時,遍歷棧頂結點的右子樹。void preorder...

二叉樹的遍歷 非遞迴方式

分別用非遞迴的方式實現二叉樹的先序遍歷 中序遍歷和後續遍歷 非遞迴方式實現二叉樹的先序遍歷。過程 1.申請乙個新的棧,記為stack,然後將二叉樹的頭結點head壓入stack中。2.從stack中彈出棧頂結點,記為cur,然後列印cur結點的值,再將結點cur的右孩子 不為空的話 先壓入stack...