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

网站目录设计广告公司好听的名字

网站目录设计,广告公司好听的名字,西宁平台网站建设,重庆seo结算递归与非递归实现二叉树的前序遍历、中序遍历、后序遍历。 二叉树图 定义 前序遍历#xff08;Preorder Traversal#xff09;#xff1a; 前序遍历的顺序是先访问根节点#xff0c;然后按照先左后右的顺序访问子节点。对于上面的二叉树#xff0c;前序遍历的结果是…递归与非递归实现二叉树的前序遍历、中序遍历、后序遍历。 二叉树图 定义 前序遍历Preorder Traversal 前序遍历的顺序是先访问根节点然后按照先左后右的顺序访问子节点。对于上面的二叉树前序遍历的结果是4 - 2 - 1 - 3 - 6 - 5 - 7。 中序遍历Inorder Traversal 中序遍历的顺序是按照先左后根再右的顺序访问子节点。对于上面的二叉树中序遍历的结果是1 - 2 - 3 - 4 - 5 - 6 - 7。 后序遍历Postorder Traversal 后序遍历的顺序是按照先左后右再根的顺序访问子节点。对于上面的二叉树后序遍历的结果是1 - 3 - 2 - 5 - 7 - 6 - 4。 通俗易懂 如果上面的定义看着有点晕看这里如上图在这三个节点中观察根节点2的遍历位置 前序遍历213 中序遍历123 后序遍历132 总结不管哪个遍历方式左右相比都是左先1在前3在后根节点2依次是前、中、后递归时把子树看成整体逻辑同理。 代码 public class BinaryTree {public static void main(String[] args) {int[] nums {1, 2, 3, 4, 5, 6, 7};TreeNode root TreeNode.buildTree(nums);System.out.print(前序遍历递归);preorderTraversal(root);System.out.println();System.out.print(中序遍历递归);inorderTraversal(root);System.out.println();System.out.print(后序遍历递归);postorderTraversal(root);System.out.println();System.out.print(前序遍历栈);preorderTraversal1(root);System.out.println();System.out.print(中序遍历栈);inorderTraversal1(root);System.out.println();System.out.print(后序遍历栈);postorderTraversal1(root);System.out.println();}//前序遍历(递归)public static void preorderTraversal(TreeNode root) {if (root null) {return;}System.out.print(root.val ); // 访问根节点preorderTraversal(root.left); // 访问左子树preorderTraversal(root.right); // 访问右子树}// 中序遍历(递归)public static void inorderTraversal(TreeNode root) {if (root null) {return;}inorderTraversal(root.left); // 访问左子树System.out.print(root.val ); // 访问根节点inorderTraversal(root.right); // 访问右子树}// 后序遍历(递归)public static void postorderTraversal(TreeNode root) {if (root null) {return;}postorderTraversal(root.left); // 访问左子树postorderTraversal(root.right); // 访问右子树System.out.print(root.val ); // 访问根节点}// 前序遍历(栈)public static void preorderTraversal1(TreeNode root) {if (root null) {return;}StackTreeNode 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); // 再将左子节点入栈}}}// 中序遍历(栈)public static void inorderTraversal1(TreeNode root) {if (root null) {return;}StackTreeNode stack new Stack();TreeNode node root;while (node ! null || !stack.isEmpty()) {while (node ! null) {stack.push(node);node node.left; // 先将左子节点入栈}node stack.pop();System.out.print(node.val ); // 打印当前节点的值node node.right; // 再处理右子节点}}// 后序遍历(栈)public static void postorderTraversal1(TreeNode root) {if (root null) {return;}StackTreeNode stack1 new Stack();StackTreeNode stack2 new Stack();stack1.push(root);while (!stack1.isEmpty()) {TreeNode node stack1.pop();if (node.left ! null) {stack1.push(node.left); // 先将左子节点入栈}if (node.right ! null) {stack1.push(node.right); // 再将右子节点入栈}stack2.push(node); // 将当前节点入栈用于后序遍历}while (!stack2.isEmpty()) {System.out.print(stack2.pop().val ); // 打印栈中的节点值即后序遍历结果}} } TreeNode  public class TreeNode {int val;TreeNode left;TreeNode right;TreeNode(int x) { val x; }// 构建二叉树public static TreeNode buildTree(int[] nums) {if (nums null || nums.length 0) {return null;}return buildTree(nums, 0, nums.length - 1);}private static TreeNode buildTree(int[] nums, int left, int right) {if (left right) {return null;}int mid (left right) / 2;TreeNode root new TreeNode(nums[mid]);root.left buildTree(nums, left, mid - 1);root.right buildTree(nums, mid 1, right);return root;} } 运行结果 前序遍历递归4 2 1 3 6 5 7  中序遍历递归1 2 3 4 5 6 7  后序遍历递归1 3 2 5 7 6 4  前序遍历栈4 2 1 3 6 5 7  中序遍历栈1 2 3 4 5 6 7  后序遍历栈1 3 2 5 7 6 4
http://www.hkea.cn/news/14393098/

相关文章:

  • 三优科技 网站开发怎么样做个网站
  • 自己做网站做淘宝联盟手机端的网站首页该怎么做
  • 福州网站设计费用wordpress 分类调用
  • 鹰潭网站建设公司车墩做网站公司
  • 网站建设在线推广百度搜索推广和信息流推广
  • 世界杯网站建设网站建设企业需要准备资料
  • 域名如何绑定网站电商运营基础知识
  • 建网站买什么主机惠州网络推广平台
  • 公司做网站需要提供的材料w3school网页制作
  • 做公司网站哪个好wordpress调用插件吗
  • 如何选择网站开发广告设计专业是干什么的
  • 广州做外贸网站建设企业网站开发技术期末试题
  • 网站建设实践考试试题wordpress多大vps
  • 怎么在360网站做词条咪呜瀑布流WordPress模板
  • 公司 宜宾网站建设网站开发完没人运营
  • 专业集团门户网站建设公司宁波建设网站
  • 用iis建立网站网站建设要那些东西
  • 做网站能挣多少钱中国江苏网
  • 自己造网站win2012服务器网站建设
  • 河东做网站公司高端食品wordpress
  • 做网站编写如何制作小视频
  • 爱站网做网站吗茂名网站建设方案外包
  • 惠州网站制作定制福建建设执业资格注册管理中心网站
  • wordpress怎么做相关相似文章链接seo培训教程视频
  • 传统行业网站建设seo优化是什么职位
  • 网站建站专家页面设计站在学员的角度
  • 网站推广的岗位要求wordpress hide
  • 建筑局网站代做外国空间网站
  • 百度推广效果怎么样公司网站关键词优化
  • 做视频的免费素材网站连锁店管理网站开发