2017-11-20 11 views
1

편집 :이 질문을 대체하는 새로운 질문이 게시되었습니다. Align Ranks in Graphvizgraphviz dot의 엄격한 역순으로 순위를 매기려면 어떻게해야합니까?

먼저, 제목에 몇 가지 용어를 고안/남용 한 것에 대해 사과드립니다. "strict"는 동일한 순위의 모든 노드가 출력 이미지에서 동일한 y 위치를 필요로한다는 것을 의미하는 반면, 기본적으로는 약간 주위를 이동합니다. 둘째로, "역"이란 말은 모든 잎이 같은 랭크이며, 그래프 하단의 동일한 행에 나타나고, 모든 조상이 랭크되고 이에 따라 정렬되도록 (가장자리 방향을 반대로하지 않고) 의미합니다. 내가 작업하고있는 그래프는 묶여있는 반 패턴이므로주기적인 부분이없고 모든 노드에는 잘 정의 된 순위가 있습니다.

Abstract Syntax Tree

나는 ("DIR = 다시" 원래의 방향과 같은를 보면 가장자리를 만들 수 등) 에지 방향을 반전하려고했으나 "엄격한"부분은 여전히 ​​문제

enter image description here입니다

+0

을 여러 { rank = same; ... } 항목을 배치 할은 GraphVIZ를 생성하는 알고리즘을 변경 끝났다 . ? – marapet

답변

0

는 내가 같은 Y 좌표에없는 같은 순위의 두 노드를 볼 수 없습니다, 첫 번째 그래프에서 출력에

1

하단 (최대) 순위에 모든 잎을 넣는 방법은 무엇입니까?

{ 
    rank=max; 
    leaf1; leaf2; leaf3; 
} 

이 바닥에 대한 모든 잎 노드를 배치해야합니다 :

당신은 속성 rank=max 모든 휴가 노드를 포함하는 서브 그래프를 포함하고 추가 할 수 있습니다.

+0

이것은 단지 리프에 효과적이지만 리프의 조상은 여전히 ​​잘못된 순위에 있습니다. – Brent

관련 문제