- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的想法是将字符转换为二进制。例如,“f”将为“100”。为了尝试这个示例,我在下面的代码中创建了扩展二叉树:
package ej2;
public class PrincipalCod {
/**
* @param args
*/
public static int cont = 0;
public static String visitNode(EDBinaryTree<Character> ab, char car, String decode) {
cont++;
System.out.println("Cont: "+cont);
if(ab.getLeftSubTree() != null) {
visitNode(ab.getLeftSubTree(), car, decode+"0");
}
if(ab.getRightSubTree() != null) {
visitNode(ab.getRightSubTree(), car, decode+"1");
}
if(ab.getLeftSubTree() == null && ab.getRightSubTree() == null) {
//OMG! leaf!
if(ab.root.data.equals(car)){
return decode;
}else{
decode="";
}
}
return null;
}
private static String codificar(EDBinaryTree<Character> ab, char car){
return visitNode(ab, car, "");
}
public static void main(String[] args) {
char caracter = 'f';
EDBinaryTree<Character> ab = new EDBinaryTree<Character>();
//i create leaf nodes
EDBinaryTree<Character> a = new EDBinaryTree<Character>('a');
EDBinaryTree<Character> f = new EDBinaryTree<Character>('f');
EDBinaryTree<Character> b = new EDBinaryTree<Character>('b');
EDBinaryTree<Character> c = new EDBinaryTree<Character>('c');
EDBinaryTree<Character> sonrightleft = new EDBinaryTree<Character>(null, f, b);
EDBinaryTree<Character> sonright = new EDBinaryTree<Character>(null, hijoderizq, c);
ab = new EDBinaryTree<Character>(null, a, hijoder);
System.out.println("-----Tree used--------");
ab.displayTree();
System.out.println("----------------------------");
String cod = codificar(ab, caracter);
System.out.println("Solution: "+cod);
}
}
有什么想法吗?
在 Eclipse 中测试它,它说:
Exception in thread "main" java.lang.NullPointerException
at ej2.PrincipalCod.visitNode(PrincipalCod.java:23)
at ej2.PrincipalCod.visitNode(PrincipalCod.java:16)
at ej2.PrincipalCod.visitNode(PrincipalCod.java:16)
at ej2.PrincipalCod.codificar(PrincipalCod.java:33)
at ej2.PrincipalCod.main(PrincipalCod.java:50)
它在以下行中崩溃:“if(ab.root.data.equals(car)){”
最佳答案
ab = new EDBinaryTree<Character>(null, a, hijoder);
我猜这会创建一个带有null
数据的节点
由于data == null
,那么
if(ab.root.data.equals(car))
会失败
关于java - 使用 BinaryTree 将字符编码为二进制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17035432/
我玩了一点二叉树并构建了一个菜单,当我单击创建树时,用户可以选择是构建二叉树、向他构建的二叉树插入值还是删除它。树被创建,然后菜单再次出现,现在我想在这棵树中放一个数字,但是在案例中没有设置该变量,每
问题出在有两个参数的insert方法上。函数 insert(char letter, string code) 调用 insert(TreeNode *node, char letter, char
我想以数组的形式返回所有节点的值,但是返回值是错误的。 type TreeNode struct { Left *TreeNode Right *TreeNode Val
我正在学习几个小时后的考试,我正在复习一些练习题,但我在递归相关问题上确实遇到了麻烦。我想知道是否有人可以引导我完成这些操作? 使用下面的BinaryTree 类,创建以下递归方法: sum() –
我的想法是将字符转换为二进制。例如,“f”将为“100”。为了尝试这个示例,我在下面的代码中创建了扩展二叉树: package ej2; public class PrincipalCod { /**
我有个问题...如果我有这样的二叉树: typedef struct { char* text; char* line; struct Node* left; struct N
我想在我的参数化二叉树类中添加双向迭代器(如 std::set 导出的迭代器),但我无法想出任何算法。 二叉树节点的简单结构是,它包含三个指针,left,right,parent: 最佳答案 对于给定
我想在图的上部绘制二叉树,并在第二部分(底部)制作第二个二叉树。下面是一些示例代码,显示树的图完全忽略了 par() 设置的分区选项。 library("party") ### regression
我目前正在学习数据结构和算法类(class)。上节课,我的教授在黑板上贴了一些代码来解释如何编写 size() ,height() ,和left()/right()教我们在测验中保持两种平衡的方法。
我是一名优秀的程序员,十分优秀!