北极_hkx 2019-10-20 16:46 采纳率: 0%
浏览 1981

java编写查找二叉树某个结点的父节点的算法

要求:
1、使用二叉链表存储结构,添加该方法为其成员方法;
2、编写测试程序,创建一棵二叉树,测试查找某个给定结点的父节点。
3、分别采用二叉链表和三叉链表实现

这部分的问题在哪?
public BiTreeNode FindXFather( BiTreeNode node,Object x) {

BiTreeNode q =root;

BiTreeNode V;

if (node!= null) {

LinkQueue L = new LinkQueue();// 构造队列

L.offer(q);// 根结点入队列

while (!L.isEmpty())
{

V = (BiTreeNode) L.poll(); //出队

if((node.lchild.data==V.data )||(node.rchild.data==V.data))

System.out.println(V.data); // 访问结点

}

BiTreeNode N;

if ((N=parent(node.lchild,x))!=null) {

return N;

}else {

return parent(node.rchild,x);

}

}

return node;

}

}

  • 写回答

1条回答 默认 最新

  • xuxigifxfh 2023-12-25 22:36
    关注

    1.队列中只添加了根节点,是否应该把所有节点都添加进去,或者把非叶子节点都添加进去;
    2.你只展示了主方法,没有告诉其他方法的作用,比如:parent(node.lchild,x)这个方法的作用;
    3.可以通过递归来寻找父节点,比如:

    
    private BiTreeNode dfs(BiTreeNode node, BiTreeNode Target){
      if(node == null){
        return null;
      }
      if(node.lchild.data == Target.data || node.rchild.data == Target.data){
        return node;//父节点
      }
      dfs(node.lchild,target);  //搜索左子树
      dfs(node.rchild,target);  //搜索右子树
      return null;
    }
    
    评论

报告相同问题?

悬赏问题

  • ¥20 sub地址DHCP问题
  • ¥15 delta降尺度计算的一些细节,有偿
  • ¥15 Arduino红外遥控代码有问题
  • ¥15 数值计算离散正交多项式
  • ¥30 数值计算均差系数编程
  • ¥15 redis-full-check比较 两个集群的数据出错
  • ¥15 Matlab编程问题
  • ¥15 训练的多模态特征融合模型准确度很低怎么办
  • ¥15 kylin启动报错log4j类冲突
  • ¥15 超声波模块测距控制点灯,灯的闪烁很不稳定,经过调试发现测的距离偏大