二叉樹 先序遍歷 中序遍歷 後續遍歷

2021-09-14 01:45:47 字數 1233 閱讀 9869

package com.example.ljia.structure.tree;

import lombok.data;

/** * @ author :samlai

* @ description:遞迴 二叉樹 先序遍歷 中序遍歷 後續遍歷

* 先序遍歷 :根 左 右

* 中序遍歷 :左 根 右

* 後序遍歷 :左 右 根

* 發現規律:這裡的順序是根節點為核心來的

* 原理:

* 利用函式棧來儲存資訊的

* * 以一棵樹為例:

* 1

* 2 3

* 4 5 6

* 列印結果:

前序遍歷 :

1 2 4 5 3 6

中序遍歷 :

4 2 5 1 3 6

後序遍歷 :

4 5 2 6 3 1

* */

@data

public class node

/*** 前序

* @param head

*/public static void preorderrecur(node head)

system.out.print(head.getvalue() + " ");

preorderrecur(head.left);

preorderrecur(head.right);

}/**

* 中序

* @param head

*/public static void inorderrecur(node head)

inorderrecur(head.left);

system.out.print(head.getvalue() + " ");

inorderrecur(head.right);

}/**

* 後序

* @param head

*/public static void posorderrecur(node head)

posorderrecur(head.left);

posorderrecur(head.right);

system.out.print(head.getvalue() + " ");

}public static void main(string args)

}

二叉樹遍歷(先序遍歷 中序遍歷 後續遍歷)

1 先序遍歷也叫做先根遍歷 前序遍歷,可記做根左右 二叉樹父結點向下先左後右 2 首先訪問根結點然後遍歷左子樹,最後遍歷右子樹。在遍歷左 右子樹時,仍然先訪問根結點,然後遍歷左子樹,最後遍歷右子樹,如果二叉樹為空則返回。非遞迴遍歷 param b public static void prescan...

二叉樹先序遍歷 中序遍歷 後序遍歷

輸入二叉樹的先序遍歷序列和中序遍歷序列,輸出該二叉樹的後序遍歷序列。非建二叉樹版本 include includeusing namespace std string preord,inord void rebuild int preleft,int preright,int inleft,int ...

二叉樹先序遍歷 後序遍歷 中序遍歷

從根部 a 開始,然後開始遍歷左子樹,直接找到 b 檢視 b 有沒有左子樹,有 d,再檢視 d 有沒有子樹,沒有,d 已經是葉子,所以第二個是 d。倒回去,取中 b,第三個數是 b。檢視 b 有沒有右子樹,有 e 檢視 e 有沒有子樹,有 g 左 h 右 所有後面三個數是 egh 先查左子樹,存在繼...