Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/336.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 创建莫尔斯电码的二叉搜索树_Java_Tree - Fatal编程技术网

Java 创建莫尔斯电码的二叉搜索树

Java 创建莫尔斯电码的二叉搜索树,java,tree,Java,Tree,因此,对于我们得到的赋值,我们必须在一个类中创建一个二进制搜索树,在方法private void buildTree()中表示摩尔斯电码one(this)。为了帮助我们,他给了我们一个数组,里面装满了我马上要展示的所有字符。在该方法中,我们必须通过引用已声明的名为topMostNode的节点来创建树。这里是char值的数组 private static final char treeChars[] = { 'E', 'I', 'S', 'H', '5', '4', 'V', '3', '

因此,对于我们得到的赋值,我们必须在一个类中创建一个二进制搜索树,在方法private void buildTree()中表示摩尔斯电码one(this)。为了帮助我们,他给了我们一个数组,里面装满了我马上要展示的所有字符。在该方法中,我们必须通过引用已声明的名为topMostNode的节点来创建树。这里是char值的数组

private static final char treeChars[] =
    { 'E', 'I', 'S', 'H', '5', '4', 'V', '3', 'U', 'F', UNUSED_CHAR, '2', 'A',
      'R', 'L', 'W', 'P', 'J', '1',
      'T', 'N', 'D', 'B', '6', 'X', 'K',
      'C', 'Y', 'M', 'G', 'Z', '7', 'Q', 'O', UNUSED_CHAR, '8', UNUSED_CHAR, '9', '0'
    };

他说有一个特定的序列,我们将不得不使用它把数组的格式,在我们的树早期的图像,但我一直在盯着它在过去的几个小时,老实说,无法找出它是什么。这似乎是不可能的,因为数组只跳过树中不需要的不可打印字符,除非它们需要指向其他有效字符,而这些无效字符随机放置在树的底部,因此没有模式知道何时不指向节点的dit或dah部分。我该怎么做?在这一点上,我诚实地考虑了硬编码中的每个值。谢谢

不是100%确定这是如何工作的,但是我从你想要构建树的数组中猜出来,并且查看它表明它是一个
深度优先树。这是一个相当简单的概念,您可以很容易地将其转换为该树的数组;到处都是深度优先树遍历代码


一旦你有了数组,你就可以通过使用
2*(node)
来获得当前节点的左或右子节点,对左子节点使用
2*(node)+1
来获得右子节点。

是的,我想把他提供的数组放到一个树中,这个树只能从一个有“topMostNode”的节点引用,而且树看起来像你的解决方案的问题是树中间的一些节点只指向一个或两个值,因为一些最底层节点是树中不想要的无效字符,因此不在数组中。另一个问题是数组的组织方式与2*node/+1方法不同。至少我认为,也许你是对的,我只是看不到你在说什么,从提供的数组来看,它不是一个完整的树,所以使用深度优先遍历不能保证你知道节点停在哪里。在分配中是否有任何其他规范可以帮助确定节点应该结束在哪里?他对buildTree方法所说的是“为了使树与维基百科网站上显示的树相同,这是最有效的树结构,将摩尔斯电码序列添加到表中的顺序是一个特定的顺序。为了帮助您,我为您提供了一个部分类文件,该文件将序列作为类静态最终字符串数组和等效ASCII字符的“并行”数组提供;i、 e.字符串数组中关联摩尔斯电码的节点“值”。“是的,要么我忽略了这个问题,要么这是不可能的。除非他指定节点何时可以有右或左子节点,否则树遍历是不可能的。我会尝试联系他,以确定他要求的是什么,现在,只需忽略给定的数组,创建一个基于树的新数组,并创建二进制搜索树算法。