美文网首页
图的定义

图的定义

作者: mrjunwang | 来源:发表于2018-07-09 10:08 被阅读0次

图由顶点和边组成。

public class Graph {
    Set<Node> nodes = new HashSet();
    Set<Edge> edges=new HashSet<>();

    public Graph(){
        
    }
    public Graph(Set nodes,Set edges){
        this.nodes=nodes;
        this.edges=edges;
    }
    class Node {
        int value;
        List<Edge> edges = new LinkedList();

        public Node(int value) {
            this.value = value;
        }

        public void setEdges(Edge edge) {

            edges.add(edge);
        }
    }

    class Edge {
        Node start;
        Node end;
        int weight;

        public Edge(Node start, Node end,int weight) {
            this.start = start;
            this.end = end;
            this.weight = weight;
        }
    }

    public Node createNode(int value) {
        Node node = new Node(value);
        nodes.add(node);
        return node;
    }

    public Edge insertEdge(Node start, Node end) {
        if (nodes.contains(start) && nodes.contains(end)) {
            Edge edge = new Edge(start, end);
            start.setEdges(edge);
            end.setEdges(edge);
            edges.add(edge);
            return edge;
        }
        return null;
    }

    public void removeNode(Node node) {
        if (nodes.contains(node)) {
            node.edges = null;
            nodes.remove(node);
        }
    }

    public void removeEdge(Node start, Node end) {
        List<Edge> edges = start.edges;
        for (Edge e : edges) {
            Node endNode = e.end;
            if (endNode.equals(end)) {
                edges.remove(e);
            }
        }

        List<Edge> edgesEnd = end.edges;
        for (Edge e : edgesEnd) {
            Node endNode = e.end;
            if (endNode.equals(start)) {
                edgesEnd.remove(e);
                edges.remove(e);

            }
        }
    }

}

相关文章

  • 图的定义

    定义 图的数据元素称为顶点 无向图 G = (V,{E}),V = {A, B, C, D...

  • 图的定义

    图由顶点和边组成。

  • 图的定义

    图的定义 线性表中数据元素叫结点;树中数据元素叫结点;图中数据元素叫顶点; 图中的定义 无向边:若顶点Vi到Vj之...

  • 图的定义

    1、定义及相关概念 图G由顶点集V和边集E组成,记为G=(V,E),其中V(G)表示图G中顶点的有限非空集合,E(...

  • 71_图的定义与操作

    关键词:图的定义、无向边与无向图、无向边与无向图、顶点邻接(Adjacent)的定义、度(Degree)的定义、 ...

  • 图的定义及抽象表示

    一、无向图 1.1 无向图的定义 边没有方向的图称为无向图。 API定义: 1.2 无向图的抽象表示 1.2.1 ...

  • python数据结构教程 Day15

    本章内容 图的定义与基本概念 图抽象数据类型定义 实现ADT Graph 应用:解决词梯问题 一、图的定义与基本概...

  • 算法读书笔记之图的基本概念

    图 概念定义 图的分类 图的表示方式 图的代码实现

  • 图的奇葩定义

    在线性表中,每个元素之间只有一个直接前驱和一个直接后继,在树形结构中,数据元素之间是层次关系,并且每一层上的数据元...

  • 图的基本概念1

    图是由顶点和边构成,定义如下 图的分类 完全图 子图

网友评论

      本文标题:图的定义

      本文链接:https://www.haomeiwen.com/subject/yokzuftx.html