/**
* <p>
* 定义图的存储格式为邻接表形式。
* </p>
* <p>
* 类GraphAdjList的每一个对象对应一个结点的邻接链表。
* </p>
* @author Fe
*/
class GraphAdjList {
/**
* 与此结点邻接的第一个结点信息。
*/
NextAdjNode firstNode = null;
/**
* 通过传送一个与此结点邻接的第一个结点来构造此结点的邻接链表。
* @param first
* 与此结点邻接的第一个结点。
*/
public GraphAdjList(NextAdjNode first) {
firstNode = first;
}
}
/**
* 图中对应于此结点所在邻接链表表头结点的邻接结点的信息。
* @author Fe
*/
class NextAdjNode {
/**
* 邻接结点的索引。
*/
int nodeNum;
/**
* 结点与其邻接结点之间的边的权值。
*/
int edgeWeight;
/**
* 结点所在邻接链表中的下一个邻接结点及其信息。
*/
NextAdjNode nextNode = null;
/**
* 通过邻接结点的索引及其与所在邻接链表表头结点之间的边的权值来构造一个新的邻接结点对象。
* @param node
* 邻接结点索引。
* @param weight
* 邻接结点与所在邻接链表表头结点之间的边的权值。
*/
public NextAdjNode(int node, int weight) {
nodeNum = node;
edgeWeight = weight;
}
}