4
에 순환 참조를 감지하는 방법 :예를 들어 자바 스크립트
$ node
> var x = {}
undefined
> x.x = x
{ x: [Circular] }
구조의 종류들이 이러한 목표를 달성하는 데 사용하는 궁금, 그것은 내가 방금 무슨 짓을했는지에 직접 인코딩되지 있기 때문에. 그들은 같은 것을 할 것 같아 :
var graph = new Graph(object)
graph.detectCircularReferences()
을 그리고 그것은 그들을 얻을 것입니다,하지만 어떻게 작동하는지 확실하지. 그것을 구현하는 방법을 배우기를 원합니다.
[직접 그래프의 사이클을 감지하는 데 가장 적합한 알고리즘] (https://stackoverflow.com/questions/261573/best-algorithm-for-detecting-cycles-in-a-directed-graph)) –
[여기] (https://github.com/nodejs/node/blob/3fe165ace6723b1446994574a5197bb70d9a6c72/lib/util.js#L186) 및 [여기] (https://github.com/nodejs/node/blob/)를 참조하십시오. 3fe165ace6723b1446994574a5197bb70d9a6c72/lib/util.js # L168). 그것들은 기본적으로 순환 객체를 JSON.string 화하려고 시도 할 때 예외가 발생합니다. –
발생하는 객체의 참조를 배열로 푸시하는 재귀 함수를 가질 수 있으며 각 객체에 대해 참조가 이미 발생했는지 검사합니다 배열에서) 또는 아닙니다. –