我已指示無環圖是近樹的集合,在下面的意義:每個圖都有一個根和頂點組織爲水平例如,如果v 和v 是頂點,然後如果v 水平小於v 2水平,則存在從v到v 1在圖中沒有邊緣,儘管可能存在許多邊緣從v 到在相同或更高水平的頂點。例如,表達式樹,函數調用圖或線性類層次結構就是這樣的圖的例子。這裏是這樣的曲線圖的一個示例:分層數據的最佳圖形繪製算法?
A1
/\ A1 -> A4, A3
/ \ A3 -> A2, A6, A7
A4 A2--A3 A2 -> A6
| \/\
A6 \_ A7
有圖形的繪圖算法過多,我無法確定哪一個是最適合於這種情況。一些初步的研究表明,用於繪製Hasse圖的算法可能是合適的,但似乎這種算法的輸出不適用於我試圖建模的數據結構類型。還有幾種用於對分層數據進行建模的算法,但我不確定哪種算法能夠輕鬆實現效率。前一種方法存在的一個問題是這些圖形有一個根,也有一個方向。如果可能的話,該算法將支持循環圖,並儘量減少數值計算的次數,但這不是必需的。由於這些原因,我寧願避免強制執行算法,並且如果可能的話,可以使用GraphViz算法,如,點。
對於遲來的迴應我表示歉意;我沒有意識到還有一個額外的答案。我認爲你是正確的:除了邊緣交叉算法之外,使用樹形繪圖算法將是最好的選擇。這似乎是最好的答案,因爲它通過將樹形繪製算法與算法結合以最小化邊緣交叉來解決問題,從而澄清了問題。 – danportin