ts-ds-tool
Version:
Data structure and algorithm of TypeScript
30 lines (29 loc) • 859 B
JavaScript
import { breadthFirstSearch } from "../breadth-first-search/breadthFirstSearch";
import { isconnected } from "../isconnected/isconnected";
export function isUndirectedEulerGraph(graph) {
if (!graph) {
return false;
}
if (graph.Directed) {
return false;
}
if (!isconnected(graph)) {
return false;
}
const vertices = graph.getVertexs();
return vertices.every(item => !(item.getDegree() & 1));
}
export function isDirectedEulerGraph(graph) {
if (!graph) {
return false;
}
if (!graph.Directed) {
return false;
}
const vertices = graph.getVertexs();
const traversalVertices = breadthFirstSearch(graph);
if (traversalVertices.length === vertices.length) {
return vertices.every(item => item.getInDegree() === item.getOutDegree());
}
return false;
}