二叉树的先序、中序、后续遍历【Java】
生活随笔
收集整理的這篇文章主要介紹了
二叉树的先序、中序、后续遍历【Java】
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
夫陶公清風千古,余又何人,敢稱庶幾
文章目錄
- 介紹
- 一、編寫節(jié)點類
- 二、 遍歷二叉樹
- 先序遍歷
- 中序遍歷
- 后序遍歷
- 三、創(chuàng)建一棵樹
介紹
在計算機科學中,二叉樹(英語:Binary tree)是每個節(jié)點最多只有兩個分支(即不存在分支度大于2的節(jié)點)的樹結構。通常分支被稱作“左子樹”或“右子樹”。二叉樹的分支具有左右次序,不能隨意顛倒。
一、編寫節(jié)點類
一個節(jié)點就代表需要創(chuàng)建一個對象,就像這樣TreeNode root=new TreeNode(10),這樣我們就創(chuàng)建了一個根節(jié)點,簡直so easy,并且根節(jié)點的值為10,如果我們需要創(chuàng)建10個節(jié)點(就是那種小圈圈)就需要創(chuàng)建10個對象(new 10次)。節(jié)點類包括兩個關鍵的屬性,一個left和一個right分別用來保存左孩紙和右孩紙。其中val是我隨便弄的變量,用來保存數(shù)據(jù)。
public class TreeNode {int val; //數(shù)據(jù)TreeNode left; //左孩紙TreeNode right; // 右孩紙TreeNode() {}TreeNode(int val) {this.val = val;}TreeNode(int val, TreeNode left, TreeNode right) {this.val = val;this.left = left;this.right = right;} }二、 遍歷二叉樹
先序遍歷
public static void preTraversal(TreeNode root) {if (root != null) {System.out.println(root.val);preTraversal(root.left);preTraversal(root.right);}}中序遍歷
public static void inTraversal(TreeNode root) {if (root != null) {inTraversal(root.left);System.out.println(root.val);inTraversal(root.right);}}后序遍歷
private static void posTraversal(TreeNode root) {if (root != null) {posTraversal(root.left);posTraversal(root.right);System.out.println(root.val);}}三、創(chuàng)建一棵樹
package com.breez.dsa.tree.demo1;public class Tree {public static void preTraversal(TreeNode root) {...}public static void inTraversal(TreeNode root) {...}private static void posTraversal(TreeNode root) {...}public static void main(String[] args) {TreeNode root = new TreeNode(3);TreeNode root2 = new TreeNode(9);TreeNode root3 = new TreeNode(5);TreeNode root4 = new TreeNode(6);TreeNode root5 = new TreeNode(15);TreeNode root6 = new TreeNode(7);TreeNode root7 = new TreeNode(8);root.left = root2;root.right = root3;root2.left = root4;root2.right = root5;root3.left = root6;root6.left = root7;System.out.println("=================先序遍歷=====================");preTraversal(root);System.out.println("=================中序遍歷=====================");inTraversal(root);System.out.println("=================后序遍歷=====================");posTraversal(root);}}通過下面幾行代碼我們就構造出了下圖所示的二叉樹
root.left = root2;
root.right = root3;
root2.left = root4;
root2.right = root5;
root3.left = root6;
root6.left = root7;
運行結果:
最后說一句:我太菜了
總結
以上是生活随笔為你收集整理的二叉树的先序、中序、后续遍历【Java】的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 撤销EXCLE工作表保护密码
- 下一篇: Vue3 --- Vite快速创建Vue