Java 中用于先序遍历的 Morris 遍历2024 年 9 月 10 日 | 阅读 3 分钟 在本节中,我们将学习Java 中的莫里斯前序遍历。在莫里斯遍历中,我们无需递归或堆栈即可完成树的遍历。莫里斯遍历基于线索二叉树。 莫里斯前序遍历算法以下是莫里斯前序遍历的算法,它几乎与莫里斯中序遍历相似。
实施让我们看看使用上述算法实现的莫里斯前序遍历。 文件名: BTree1.java 输出 The preorder traversal of the binary tree is: 6 8 1 4 5 9 7 时间复杂度: 由于该算法与莫里斯中序遍历相似。因此,上述程序的总时间复杂度为 O(n)。 注意:在许多地方,人们说递归方法进行前序遍历不消耗任何空间。但这并不完全正确。在递归中,即使我们没有显式提供堆栈,也会使用堆栈。莫里斯遍历可以在二叉树内部修改的帮助下工作。如果没有内部修改,莫里斯遍历将无法工作。因此,如果不允许内部修改,则应考虑莫里斯遍历。 下一主题Java 中的包命名约定 |
图论中的一个重要问题是确定从一个顶点到另一个顶点的有向图的所有路径。它在路由、网络最优路径的决策制定以及一般情况下的多种用途中特别有用...
5 分钟阅读
逆向工程是软件开发中的一个关键过程,它使开发人员能够深入了解现有代码库。它使他们能够理解复杂的系统、识别设计模式并提高可维护性。逆向工程的强大工具之一是 ArgoUML,一个流行的开源...
阅读 3 分钟
简介:程序员经常遇到必须确定给定字符串是否包含 0 到 9 所有数字的情况。这在各种情况下都很有用,包括输入验证、数据验证和密码验证。问题陈述:编写一个 Java 程序,检查给定的字符串是否...
阅读 6 分钟
Java 是一种通用且功能强大的编程语言,它使开发人员能够创建从 Web 应用程序到移动应用和桌面软件的各种应用程序。在本节中,我们将探讨如何在 Java 中构建一个科学计算器。先决条件 在深入代码之前,请...
阅读 8 分钟
构造函数与 方法在 Java 中的区别 构造函数 构造函数和 方法彼此不同。但是,构造函数用于初始化对象的 状态。构造函数还可以像 方法一样包含数据成员和成员函数。构造函数的数据成员和成员函数...
5 分钟阅读
在本节中,我们将了解什么是四面体数,并创建 Java 程序来查找四面体数。四面体数程序经常在 Java 编码面试和学术界中出现。四面体数 如果一个数可以表示为...,则该数被称为四面体数。
阅读 3 分钟
在 Java 中,包是类、接口、枚举和注解的集合。Java 包含许多预定义包,如 java.lang、java.io、java.net 等。当我们创建任何 Java 程序时,java.lang 包都会被默认导入。我们不需要写包名...
阅读 3 分钟
Java 中离零最远程序是一个程序,它查找数组中离零最远的元素。这可以通过计算数组中每个元素的绝对值并返回具有最大绝对值的元素来完成。
阅读 2 分钟
在算术中,两个或多个数字的最小公倍数 (LCM) 是可以被这两个数字整除的最小正数,且不留余数。它也称为最低公倍数 (LCM)、最小公分母和最小公倍数....
阅读 4 分钟
如果您有一个既包含字母(从“a”到“z”以及“A”到“Z”)又包含特殊字符的字符串,您需要反转该字符串而不改变特殊字符。示例:输入:s = "j,s$v" 输出:s = "v,s$j" 请注意,这两个字符都不...
阅读 6 分钟
我们请求您订阅我们的新闻通讯以获取最新更新。
我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India