Doubly-connected edge list

Der Titel dieses Artikels ist mehrdeutig. Zur aus Halbkanten bestehenden Datenstruktur siehe Half-Edge-Datenstruktur.

Die Doubly-connected edge list (DCEL, doppelt verkettete Kantenliste) ist eine Datenstruktur, die einen zusammenhängenden planaren Graphen repräsentiert, der in die Ebene eingebettet ist. Die Datenstruktur wird in der algorithmischen Geometrie verwendet.

Definition

Sei G = (V,E) ein planarer Graph, V = { v 1 , v 2 , . . . , v n } {\displaystyle \{v_{1},v_{2},...,v_{n}\}} die Menge der Knoten, E = { e 1 , e 2 , . . . , e m } {\displaystyle \{e_{1},e_{2},...,e_{m}\}} die Menge der Kanten.

Die DCEL speichert für jede Kante e i {\displaystyle e_{i}} des Graphens einen Eintrag mit den Daten ( V 1 , V 2 , F 1 , F 2 , P 1 , P 2 {\displaystyle V_{1},V_{2},F_{1},F_{2},P_{1},P_{2}} ):

  • V 1 {\displaystyle V_{1}} : Startknoten der Kante e i {\displaystyle e_{i}}
  • V 2 {\displaystyle V_{2}} : Endknoten der Kante e i {\displaystyle e_{i}}
  • F 1 {\displaystyle F_{1}} : Name der Fläche auf der linken Seite der Kante
  • F 2 {\displaystyle F_{2}} : Name der Fläche auf der rechten Seite der Kante
  • P 1 {\displaystyle P_{1}} : Zeiger auf die erste Kante mit Knoten V 1 {\displaystyle V_{1}} , auf die man trifft, wenn man die Kante e i {\displaystyle e_{i}} gegen den Uhrzeigersinn um V 1 {\displaystyle V_{1}} dreht
  • P 2 {\displaystyle P_{2}} : Analog zu P 1 {\displaystyle P_{1}} , diesmal mit Knoten V 2 {\displaystyle V_{2}}

Beispiel

Beispielgraph

Für den Graphen in der Abbildung werden folgende Einträge gespeichert:

V1 V2 F1 F2 P1 P2
e1 v1 v2 f1 f2 e6 e2
e2 v2 v3 f1 f2 e1 e3
e3 v3 v1 f3 f2 e4 e1
e4 v3 v4 f1 f3 e2 e6
e5 v4 v5 f1 f1 e4 e5
e6 v4 v1 f1 f3 e5 e3

Anwendungen und Sonstiges

Mit Hilfe der Verweise auf die Nachfolgekanten können effizient alle Kanten mit vorgegebenen Endpunkt bestimmt werden, ebenso alle Kanten auf dem Rand einer gegebenen Fläche.

Als Doubly-connected edge list wird ebenfalls die etwas anders aufgebaute Half-Edge-Datenstruktur bezeichnet. DCEL ist eine Variante der winged-edge-Datenstruktur.

Fügt man zusätzlich die Kanten ein, die man erhält, wenn man e i {\displaystyle e_{i}} im Uhrzeigersinn um V 1 {\displaystyle V_{1}} und V 2 {\displaystyle V_{2}} dreht, erhält man die quad edge data structure (QEDS). Mit ihr lassen sich Ränder von Flächen und von einem Knoten ausgehende Kanten in beide Richtungen durchlaufen. Ein weiterer Vorteil ist, dass man die QEDS des dualen Graphen erhält, wenn jede Kante durch ihre jeweilige duale Kante ersetzt wird.[1]

Literatur

  • Franco P. Preparata, Michael Ian Shamos: Computational geometry: an introduction. Springer-Verlag, New York 1985, ISBN 0-387-96131-3, S. 15 (englisch). 
  • Dinesh P. Mehta, Sartaj Sahni: Handbook of data structures and applications. CRC Press, 2004, ISBN 1-58488-435-5, S. 17–7 (englisch). 
  • Rolf Klein: Algorithmische Geometrie: Grundlagen, Methoden, Anwendungen. 2. Auflage. Springer, Berlin [u. a.] 2005, ISBN 3-540-20956-5, S. 19. 

Einzelnachweise

  1. Rolf Klein: Algorithmische Geometrie, 2005, S. 19–20.