mirror of
https://github.com/trekhleb/javascript-algorithms.git
synced 2025-12-08 19:06:00 +00:00
41 lines
761 B
JavaScript
41 lines
761 B
JavaScript
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}_${endVertexKey}`;
|
|
}
|
|
|
|
/**
|
|
* @return {GraphEdge}
|
|
*/
|
|
reverse() {
|
|
const tmp = this.startVertex;
|
|
this.startVertex = this.endVertex;
|
|
this.endVertex = tmp;
|
|
|
|
return this;
|
|
}
|
|
|
|
/**
|
|
* @return {string}
|
|
*/
|
|
toString() {
|
|
return this.getKey();
|
|
}
|
|
}
|