生活随笔
收集整理的這篇文章主要介紹了
数据结构 - 树(二叉树的 前序、中序、后序 遍历)
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
二叉樹遍歷(前序中序后序,主要是看父節(jié)點的輸出順序)
package tree
;public class BinaryTreeDemo {public static void main(String
[] args
) {BinaryTree binaryTree
= new BinaryTree();HeroNode root
= new HeroNode(1, "宋江");HeroNode node2
= new HeroNode(2, "吳用");HeroNode node3
= new HeroNode(3, "盧俊義");HeroNode node4
= new HeroNode(4, "林沖");binaryTree
.setRoot(root
);root
.setLeft(node2
);root
.setRight(node3
);node3
.setRight(node4
);System
.out
.println("前序遍歷");binaryTree
.preOrder();System
.out
.println("中序遍歷");binaryTree
.infixOrder();System
.out
.println("后序遍歷");binaryTree
.postOrder();}
}class BinaryTree{private HeroNode root
;public void setRoot(HeroNode root
){this.root
= root
;}public void preOrder(){if (this.root
!= null
){this.root
.preOrder();}else {System
.out
.println("二叉樹為空無法遍歷");}}public void infixOrder(){if (this.root
!= null
){this.root
.infixOrder();}else {System
.out
.println("二叉樹為空無法遍歷");}}public void postOrder(){if (this.root
!= null
){this.root
.postOrder();}else {System
.out
.println("二叉樹為空無法遍歷");}}
}
class HeroNode{private int no
;private String name
;private HeroNode left
;private HeroNode right
;public HeroNode(int no
, String name
) {this.no
= no
;this.name
= name
;}public int getNo() {return no
;}public void setNo(int no
) {this.no
= no
;}public String
getName() {return name
;}public void setName(String name
) {this.name
= name
;}public HeroNode
getLeft() {return left
;}public void setLeft(HeroNode left
) {this.left
= left
;}public HeroNode
getRight() {return right
;}public void setRight(HeroNode right
) {this.right
= right
;}@Overridepublic String
toString() {return "HeroNode{" +"no=" + no
+", name='" + name
+ '\'' +'}';}public void preOrder(){System
.out
.println(this);if (this.left
!= null
){this.left
.preOrder();}if (this.right
!= null
){this.right
.preOrder();}}public void infixOrder(){if (this.left
!= null
){this.left
.infixOrder();}System
.out
.println(this);if (this.right
!= null
){this.right
.infixOrder();}}public void postOrder(){if (this.left
!= null
){this.left
.postOrder();}if (this.right
!= null
){this.right
.postOrder();}System
.out
.println(this);}
}
先紙上自己寫了一遍,然后程序驗證
總結(jié)
以上是生活随笔為你收集整理的数据结构 - 树(二叉树的 前序、中序、后序 遍历)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。