首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用泛型实现树和广度搜索

使用泛型实现树和广度搜索
EN

Stack Overflow用户
提问于 2013-12-12 06:06:41
回答 1查看 81关注 0票数 0

我对泛型没有太多的经验,正在努力掌握使用它们的诀窍。在将其用于处理整数之后,我尝试使用泛型来使其工作,但我一直收到以下错误

必需: genericTree找到: int原因:实际参数int无法通过方法调用转换转换为genericTree,其中T是类型变量:T扩展在类genericTree中声明的对象genericTree.java:83:错误:类genericTree中的方法add不能应用于给定类型;

我知道它告诉我什么,但我不确定如何修复它。我已经尝试了不同的方法,但似乎都不适合我。

下面是我的完整代码:

代码语言:javascript
复制
import java.util.*;

class genericTree<T>{

    private Node root;
    public List <genericTree<T>> list;

    private class Node
    {
    Node left;
    Node right;
    T data;

            Node(T newData)
            {
                    left = null;
                    right = null;
                    data = newData;
            }
    }

    genericTree()
    {
            root = null;
    }

    public boolean breadthSearch(genericTree<T> searchValue)
    {
    Queue<Node> queue = new LinkedList<Node>() ;
            if (this.root == null)
                   return false;
    queue.clear();
    queue.add(root);
 while(!queue.isEmpty())
    {
        Node node = queue.remove();
            System.out.print(node.data + " ");

                    if(node.data == searchValue)
                            return true;
                    if(node.left != null)
                            queue.add(node.left);
                    if(node.right != null)
                            queue.add(node.right);
    }
     return false;
    }


    public void add(genericTree<T> data)
    {
      list.add(data);
    }

    public void display()
    {
            display(root);
    }

    private void display(Node node)
    {
            if(node==null)
                    return;
            display(node.left);
            System.out.println(node.data + " ");
            display(node.right);
    }
    public static void main(String[] args)
    {       

    genericTree bst = new genericTree();
    bst.add(10);
    bst.add(5);
    bst.add(6);             
    bst.add(13);
    bst.add(15);
    bst.add(8);
    bst.add(14);
    bst.add(7);
    bst.add(12);
    bst.add(4);
    bst.breadthSearch(6);
    }
}    

谢谢你的帮助

EN

回答 1

Stack Overflow用户

发布于 2013-12-12 06:10:44

看起来你打算做以下事情

代码语言:javascript
复制
public boolean breadthSearch(genericTree<T> searchValue)

是这样的

代码语言:javascript
复制
public boolean breadthSearch(T searchValue)

您可能还希望确保您的genericTree<T>genericTree<int>

代码语言:javascript
复制
genericTree<int> bst = new genericTree<int>();
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20530924

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档