graph LR A["physdes-rs ๐ฆ\nRust"] -- "arena trees\nusize indices" --> D["Same\nAlgorithms\nDME 1992\nPrimal-Dual\nSteiner Forest"] B["physdes-cpp โก\nC++20"] -- "pointer-stable\ndeque arena" --> D C["physdes-py ๐\nPython"] -- "object graph\nrecursive closures" --> D
graph TD S["Source O"] --> T1["Terminal 1"] S --> ST["Steiner *"] ST --> T2["Terminal 2"] ST --> T3["Terminal 3"] style S fill:#ff6b6b style T1 fill:#51cf66 style T2 fill:#51cf66 style T3 fill:#51cf66 style ST fill:#339af0
graph TD subgraph "Growing Phase" A["Active components\npay for edges"] --> B["Edge cost met\nโ add edge"] B --> C["Union Find\nmerge"] C --> D{"All pairs\nconnected?"} D -->|"no"| A D -->|"yes"| E["Reverse Delete"] end E --> F["Pruned Forest"]
graph TD A["5 3 1 4 2"] --> B["nth_element\nmid=2"] B --> C["1 2 โ 3 โ 4 5"] C --> D["Left: {1,2}"] C --> E["Right: {4,5}"] style B fill:#4caf50