带你读《图解算法小抄》七、图(1)https://developer.aliyun.com/article/1348217?groupCode=tech_library
GraphEdge
export default class GraphEdge { /** * @param {GraphVertex} startVertex * @param {GraphVertex} endVertex * @param {number} [weight=1] */ constructor(startVertex, endVertex, weight = 0) { this.startVertex = startVertex; this.endVertex = endVertex; this.weight = weight; } /** * @return {string} */ getKey() { const startVertexKey = this.startVertex.getKey(); const endVertexKey = this.endVertex.getKey(); return `{startVertexKey}_{startVertexKey}_{startVertexKey}_{endVertexKey}`; } /** * @return {GraphEdge} */ reverse() { const tmp = this.startVertex; this.startVertex = this.endVertex; this.endVertex = tmp; return this; } /** * @return {string} */ toString() { return this.getKey(); }}
LinkedListNode
export default class LinkedListNode { constructor(value, next = null) { this.value = value; this.next = next; } toString(callback) { return callback ? callback(this.value) : `${this.value}`; }}
带你读《图解算法小抄》七、图(3)https://developer.aliyun.com/article/1348215?groupCode=tech_library