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

ftp上传网站全教程凡科做的网站为什么打不开

ftp上传网站全教程,凡科做的网站为什么打不开,中国企业500强排行榜完整榜单,wordpress中文广告插件二叉树的遍历是二叉树操作中的一个基本且重要的概念#xff0c;它指的是按照一定的规则访问二叉树中的每个节点#xff0c;并且每个节点仅被访问一次。常见的二叉树遍历方式有四种#xff1a;前序遍历#xff08;Pre-order Traversal#xff09;、中序遍历#xff08;In-…二叉树的遍历是二叉树操作中的一个基本且重要的概念它指的是按照一定的规则访问二叉树中的每个节点并且每个节点仅被访问一次。常见的二叉树遍历方式有四种前序遍历Pre-order Traversal、中序遍历In-order Traversal、后序遍历Post-order Traversal和层序遍历Level-order Traversal。 1. 前序遍历Pre-order Traversal 前序遍历的顺序是根节点 - 左子树 - 右子树。对于每个节点都遵循这个顺序进行遍历。 递归实现 void preorderTraversal(TreeNode root) { if (root null) return; System.out.print(root.val ); // 访问根节点 preorderTraversal(root.left); // 遍历左子树 preorderTraversal(root.right); // 遍历右子树 } 非递归迭代实现使用栈 void preorderTraversalIterative(TreeNode root) { StackTreeNode stack new Stack(); if (root ! null) 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. 中序遍历In-order Traversal 中序遍历的顺序是左子树 - 根节点 - 右子树。这常用于二叉搜索树BST中因为这样可以得到一个有序的节点序列。 递归实现 void inorderTraversal(TreeNode root) { if (root null) return; inorderTraversal(root.left); // 遍历左子树 System.out.print(root.val ); // 访问根节点 inorderTraversal(root.right); // 遍历右子树 } 非递归迭代实现使用栈 void inorderTraversalIterative(TreeNode root) { StackTreeNode 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. 后序遍历Post-order Traversal 后序遍历的顺序是左子树 - 右子树 - 根节点。 递归实现 void postorderTraversal(TreeNode root) { if (root null) return; postorderTraversal(root.left); // 遍历左子树 postorderTraversal(root.right); // 遍历右子树 System.out.print(root.val ); // 访问根节点 } 非递归迭代实现使用栈 void postorderTraversalIterative(TreeNode root) { StackTreeNode stack new Stack(); TreeNode prev null; // 用于记录上一次访问的节点 while (root ! null || !stack.isEmpty()) { while (root ! null) { stack.push(root); root root.left; // 遍历到最左节点 } root stack.peek(); // 弹出栈顶元素但不移除 // 如果右子树为空或者右子树已经访问过则访问当前节点 if (root.right null || root.right prev) { stack.pop(); System.out.print(root.val ); // 访问节点 prev root; root null; // 回到上层循环检查是否有其他节点需要访问 } else { root root.right; // 否则转向右子树 } } } 4. 层序遍历 非递归迭代实现使用队列 import java.util.LinkedList; import java.util.Queue; class TreeNode { int val; TreeNode left; TreeNode right; TreeNode(int x) { val x; } } public class BinaryTreeLevelOrderTraversal { public void levelOrderTraversal(TreeNode root) { if (root null) return; QueueTreeNode queue new LinkedList(); queue.offer(root); // 将根节点加入队列 while (!queue.isEmpty()) { TreeNode currentNode queue.poll(); // 从队列中取出一个节点 System.out.print(currentNode.val ); // 访问该节点 // 如果左子节点不为空则将其加入队列 if (currentNode.left ! null) { queue.offer(currentNode.left); } // 如果右子节点不为空则将其加入队列 if (currentNode.right ! null) { queue.offer(currentNode.right); } } } } 非递归迭代实现 实际上层序遍历不常使用递归实现因为递归本质上是栈的操作而层序遍历需要的是队列。但我们可以借助一些额外的数据结构如数组或链表来模拟层序遍历的效果但这通常不是推荐的做法因为它违背了层序遍历的本意。
http://www.hkea.cn/news/14319022/

相关文章:

  • 阅读网站怎样做千博医院网站模板
  • 宁波网站制作出售wordpress更改主站点
  • 北京网站优化软件公司网站套餐网页
  • 网站信息化建设方案wordpress add post meta
  • 外贸出口建站做网站的商家怎么后去流量费
  • php语言 电商网站建设网页设计与制作ppt课件
  • 外贸石材网站wordpress 图像主题
  • 华为商城网站设计分析wordpress自带的邮件系统
  • 织梦cms通用蓝白简介大气企业网站环保科技公司源码免费建站哪个网站最好
  • 衡水网站建设找谁店铺设计理念怎么写
  • 网站首页被降权的原因好的模板网站建设
  • 建网站需要多少钱和什么条件有关wordpress migrate.min.js是什么
  • 中国做爰网站个人小程序源码
  • 医院网站建设台账网站 网址 域名
  • 中国银行全球门户网站用织梦网站后台发布文章为什么还需要审核
  • 网站运营的发展方向江苏建设外贸公司网站
  • 网站插件代码怎么用教育网站建设平台
  • 传媒公司有哪些搜索引擎优化的方法与技巧
  • 邢台网站建设的地方建站产品
  • 东莞做公众号的网站济南网站制作多少钱一个
  • 创业做网站还是软件好ulysses wordpress
  • 网站建设费要摊销外贸局
  • 手机wap网站开发的cms系统联系导师邮件模板
  • 庆安建设局网站大型门户网站建设效果
  • 惠州网站建设 英语6wordpress关闭评论审核
  • 佛山哪家公司建设网站国外网站在国内做节点
  • 手机网站免费生成wordpress 图片title
  • 广西开网站信息公司哪些行业做网站最重要
  • 网站访问不了的原因优化方案生物必修一答案
  • 专业网站设计速寻亿企邦贵港公司做网站