English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Основной учебник Java

Java Управление потоком

Java Массивы

Java Ориентированность на объекты (I)

Java Ориентированность на объекты (II)

Java Ориентированность на объекты (III)

Обработка исключений в Java

Java Список (List)

Java Очередь (Queue)

Java Словарь (Map)

Java Множество (Set)

Java Вход/Выход (I/O)

Java Reader/Writer

Другие темы Java

Реализация структуры данных графа на Java

Java полные примеры

В этом примере мы реализуем структуру данных графа на Java.

Пример: Реализация структуры данных графа

class Graph {
  //内部类
  class Edge {
    int src, dest;
  }
  //顶点和边的数量
  int vertices, edges;
  //存储所有边的数组
  Edge[] edge;
  Graph(int vertices, int edges) {
    this.vertices = vertices;
    this.edges = edges;
    //初始化边数组
    edge = new Edge[edges];
    for(int i = 0; i < edges; i++) {
      //边数组的每一个元素
      //是Edge类型的对象
      edge[i] = new Edge();
    }
  }
  public static void main(String[] args) {
    //创建一个Graph类的对象
    int noVertices = 5;
    int noEdges = 8;
    Graph g = new Graph(noVertices, noEdges);
    //创建图
    g.edge[0].src = 1; // edge 1---2
    g.edge[0].dest = 2;
    g.edge[1].src = 1; // edge 1---3
    g.edge[1].dest = 3;
    g.edge[2].src = 1; // edge 1---4
    g.edge[2].dest = 4;
    g.edge[3].src = 2; // edge 2---4
    g.edge[3].dest = 4;
    g.edge[4].src = 2; // edge 2---5
    g.edge[4].dest = 5;
    g.edge[5].src = 3; //edge 3---4
    g.edge[5].dest = 4;
    g.edge[6].src = 3; //edge 3---5
    g.edge[6].dest = 5;
    g.edge[7].src = 4; //edge 4---5
    g.edge[7].dest = 5;
    //печать графа
    for(int i = 0; i < noEdges; i++) {
      System.out.println(g.edge[i].src + " - " + g.edge[i].dest);
    }
  }
}

Результат вывода

1 - 2
1 - 3
1 - 4
2 - 4
2 - 5
3 - 4
3 - 5
4 - 5
Графический вывод

В上面的 примере, мы уже реализовали графические данные структуры на Java.

Java полные примеры