二叉树的三种遍历方式java实现

朴灿烈づ我的快乐病毒、 2022-05-31 13:14 192阅读 0赞

所谓遍历(Traversal)是指沿着某条搜索路线,依次对树中每个结点均做一次且仅做一次访问。访问结点所做的操作依赖于具体的应用问 题。 遍历是二叉树上最重要的运算之一,是二叉树上进行其它运算之基础。
1.先(根)序遍历的递归算法定义:

若二叉树非空,则依次执行如下操作:

⑴ 访问根结点;

⑵ 遍历左子树;

⑶ 遍历右子树。

2.中(根)序遍历的递归算法定义:

若二叉树非空,则依次执行如下操作:

⑴遍历左子树;

⑵访问根结点;

⑶遍历右子树。

3.后(根)序遍历得递归算法定义:

若二叉树非空,则依次执行如下操作:

⑴遍历左子树;

⑵遍历右子树;

⑶访问根结点。

  1. package com.ruicai.test;
  2. /**
  3. * @author dsx
  4. */
  5. public class BinaryTree {
  6. private BinaryTree data; //父亲节点
  7. private BinaryTree left;//左孩子
  8. private BinaryTree right;//右孩子
  9. public BinaryTree(){
  10. //无参构造
  11. }
  12. public BinaryTree getData() {
  13. return data;
  14. }
  15. public void setData(BinaryTree data) {
  16. this.data = data;
  17. }
  18. public BinaryTree getLeft() {
  19. return left;
  20. }
  21. public void setLeft(BinaryTree left) {
  22. this.left = left;
  23. }
  24. public BinaryTree getRight() {
  25. return right;
  26. }
  27. public void setRight(BinaryTree right) {
  28. this.right = right;
  29. }
  30. public BinaryTree(BinaryTree data,BinaryTree left,BinaryTree right){
  31. this.data=data;
  32. this.left=left;
  33. this.right=right;
  34. }
  35. /**
  36. * 前序遍历 ,递归方式
  37. * @param root:给出根节点
  38. */
  39. public void preOrder(BinaryTree root){
  40. if(root!=null){
  41. System.out.println(root.getData());
  42. preOrder(root.getLeft());
  43. preOrder(root.getRight());
  44. }
  45. }
  46. /**
  47. * 中序遍历
  48. * @param root
  49. */
  50. public void inOrder(BinaryTree root){
  51. if(root!=null){
  52. inOrder(root.getLeft());
  53. System.out.println(root.getData());
  54. inOrder(root.getLeft());
  55. }
  56. }
  57. /**
  58. * 后序遍历
  59. * @param root
  60. */
  61. public void postOrder(BinaryTree root){
  62. if(root!=null){
  63. postOrder(root.getLeft());
  64. postOrder(root.getRight());
  65. System.out.println(root.getData());
  66. }
  67. }
  68. }

发表评论

表情:
评论列表 (有 0 条评论,192人围观)

还没有评论,来说两句吧...

相关阅读

    相关

    二叉树的遍历分为以下三种: 先序遍历:遍历顺序规则为【根左右】 中序遍历:遍历顺序规则为【左根右】 后序遍历:遍历顺序规则为【左右根】 什么是【根左右】?就是先遍历根,