未加权的有向图 - Java

问题描述

我是 Java 新手,我正在努力实现一个未加权的有向图。每个节点都持有一个 id 和一个对象数据。我不确定我的方法,所以我需要一些关于如何继续的建议。这是我的工作:

public class adjNode {
    public String nodeId;
    public Object data;

    adjNode(String nodeId,Object data) {
        this.data = data;
        this.nodeId = nodeId;
    }
}

public class Graph {
    private Map<adjNode,List<adjNode>> map = new HashMap<>();

    adjNode findNode(String nodeId) {
        adjNode temp;
        for (int i = 0; i < map.size(); i++) {
            temp = (adjNode) map.get(i);
            if (temp.nodeId == nodeId) {
                return temp;
            }
        }
        return null;
    }


    @Override
    public void addNode(String name,Object data) {
        adjNode newNode = new adjNode(name,data);
        map.put(newNode,new LinkedList<>());
    }


    @Override
    public Object getData(String nodeId) throws InvalidNodeException {
        adjNode found = findNode(nodeId);
        if (found != null) {
            return found.data;
        } else {
            throw new InvalidNodeException(nodeId);
        }
    }


    @Override
    public void setData(String nodeId,Object data) throws InvalidNodeException {
        adjNode found = findNode(nodeId);
        if (found != null) {
            found.data = data;
        } else {
            throw new InvalidNodeException(nodeId);
        }
    }
}

有意义吗?另外如何添加有向边并找到传入和传出的邻居? 感谢您的帮助!

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...