当前位置: 首页 > news >正文

平面设计网站模板网站推广怎么做有效果

平面设计网站模板,网站推广怎么做有效果,岛国片无码作品完全流出,合肥 做网站java实现二叉树的前序、中序、后序遍历以及层级遍历 一、二叉树节点定义二、递归方式1.前序遍历2.中序遍历3.后序遍历 三、非递归方式1.前序遍历2.中序遍历3.后序遍历4.层级遍历5.分层打印 四、测试用例 一、二叉树节点定义 class TreeNode {int val;TreeNode left;TreeNode r…

java实现二叉树的前序、中序、后序遍历以及层级遍历

  • 一、二叉树节点定义
  • 二、递归方式
    • 1.前序遍历
    • 2.中序遍历
    • 3.后序遍历
  • 三、非递归方式
    • 1.前序遍历
    • 2.中序遍历
    • 3.后序遍历
    • 4.层级遍历
    • 5.分层打印
  • 四、测试用例

一、二叉树节点定义

class TreeNode {int val;TreeNode left;TreeNode right;TreeNode(int x) {val = x;}
}

二、递归方式

1.前序遍历

前序遍历(根-左-右)

public void preorderRecursive(TreeNode root) {if (root == null) {return;}// 访问根节点System.out.print(root.val + " ");// 递归遍历左子树preorderRecursive(root.left);// 递归遍历右子树preorderRecursive(root.right);
}

2.中序遍历

中序遍历(左-根-右)

public void inorderRecursive(TreeNode root) {if (root == null) {return;}// 递归遍历左子树inorderRecursive(root.left);// 访问根节点System.out.print(root.val + " ");// 递归遍历右子树inorderRecursive(root.right);
}

3.后序遍历

后序遍历(左-右-根)

public void postorderRecursive(TreeNode root) {if (root == null) {return;}// 递归遍历左子树postorderRecursive(root.left);// 递归遍历右子树postorderRecursive(root.right);// 访问根节点System.out.print(root.val + " ");
}

三、非递归方式

1.前序遍历

前序遍历(根-左-右)

public void preorderIterative(TreeNode root) {if (root == null) {return;}Stack<TreeNode> stack = new Stack<>();stack.push(root);while (!stack.isEmpty()) {TreeNode node = stack.pop();System.out.print(node.val + " ");// 先压入右节点,再压入左节点,保证左节点先出栈if (node.right != null) {stack.push(node.right);}if (node.left != null) {stack.push(node.left);}}
}

2.中序遍历

中序遍历(左-根-右)

public void inorderIterative(TreeNode root) {Stack<TreeNode> stack = new Stack<>();TreeNode curr = root;while (curr != null || !stack.isEmpty()) {// 一直向左走,把所有左节点压栈while (curr != null) {stack.push(curr);curr = curr.left;}curr = stack.pop();System.out.print(curr.val + " ");// 转向右子树curr = curr.right;}
}

3.后序遍历

后序遍历(左-右-根)

public void postorderIterative(TreeNode root) {if (root == null) {return;}Stack<TreeNode> stack = new Stack<>();// 用于反转顺序Stack<Integer> output = new Stack<>();stack.push(root);while (!stack.isEmpty()) {TreeNode node = stack.pop();output.push(node.val);// 注意这里先左后右,这样输出栈的顺序就是右-左-根// 反转后就是左-右-根if (node.left != null) {stack.push(node.left);}if (node.right != null) {stack.push(node.right);}}// 输出结果while (!output.isEmpty()) {System.out.print(output.pop() + " ");}
}

4.层级遍历

层级遍历(Level Order Traversal)也称为广度优先遍历(BFS),是按层次从上到下、从左到右访问二叉树节点的遍历方式。

public void levelOrderTraversal(TreeNode root) {if (root == null) {return;}Queue<TreeNode> queue = new LinkedList<>();queue.offer(root);while (!queue.isEmpty()) {TreeNode node = queue.poll();System.out.print(node.val + " ");if (node.left != null) {queue.offer(node.left);}if (node.right != null) {queue.offer(node.right);}}
}

5.分层打印

分层打印的实现(按层次输出)

public void levelOrderWithLevels(TreeNode root) {if (root == null) {return;}Queue<TreeNode> queue = new LinkedList<>();queue.offer(root);int levelCount = 0;while (!queue.isEmpty()) {int levelSize = queue.size();System.out.print("Level " + (levelCount++) + ": ");for (int i = 0; i < levelSize; i++) {TreeNode node = queue.poll();System.out.print(node.val + " ");if (node.left != null) {queue.offer(node.left);}if (node.right != null) {queue.offer(node.right);}}System.out.println();}
}

四、测试用例

public static void main(String[] args) {// 构建二叉树//       1//      / \//     2   3//    / \//   4   5TreeNode root = new TreeNode(1);root.left = new TreeNode(2);root.right = new TreeNode(3);root.left.left = new TreeNode(4);root.left.right = new TreeNode(5);BinaryTreeTraversal traversal = new BinaryTreeTraversal();System.out.println("递归前序遍历:");traversal.preorderRecursive(root);System.out.println("\n非递归前序遍历:");traversal.preorderIterative(root);System.out.println("\n\n递归中序遍历:");traversal.inorderRecursive(root);System.out.println("\n非递归中序遍历:");traversal.inorderIterative(root);System.out.println("\n\n递归后序遍历:");traversal.postorderRecursive(root);System.out.println("\n非递归后序遍历:");traversal.postorderIterative(root);System.out.println("\n基本层级遍历:");traversal.levelOrderTraversal(root);System.out.println("\n\n分层打印层级遍历:");traversal.levelOrderWithLevels(root);
}

打印结果
result

http://www.cadmedia.cn/news/13584.html

相关文章:

  • 万全县城乡建设网站外汇交易平台
  • 网站的设计与制作阅读第2版设计网站排行
  • 济南网站建设 力选聚搜网络软文的概念是什么
  • 建设汽车行业网站免费seo网站推广
  • 保定市人民政府网站河南网络推广公司
  • 开发一个大型网站多少钱网络营销的方法有哪些?举例说明
  • 帮别人做网站免费网页在线客服制作
  • 怎样提高网站的排名企业网站优化哪家好
  • 微信小程序什么时候上线的青岛seo计费
  • 公司网站服务器优化tool站长工具
  • 镇江网站建设哪家好线下实体店如何推广引流
  • 网站建设流程平台沈阳企业网站seo公司
  • 玛迪网站建设抖音seo搜索优化
  • 网站建设工期及预算游戏推广对接平台
  • 济南知名网站建设平台百度商店
  • 迪庆北京网站建设公司企业网站模板
  • 网站关键词怎样优化专业网站推广引流
  • 湖南省人民政府官方网站长沙企业关键词优化
  • 做软件挣钱的网站seo搜索引擎优化人才
  • wap平台株洲seo优化报价
  • 视频类网站建设的成果阿里云建站费用
  • 阜阳制作网站公司杭州制作公司网站
  • 国内crm系统十大排名企业网站seo公司
  • 湖南网站建站系统平台珠海百度推广优化排名
  • 软件开发服务开票税目seo网站查询
  • 抖音代运营销售话术seo企业站收录
  • 具权威的小企业网站建设网络营销
  • 东莞著名网站建设seo竞价推广
  • 兰州网站开发哪里可以做网络营销图片
  • 广州网站优化哪里有百家号查询排名数据查询