Doubly-connected edge list
# Doubly-connected edge list

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}\}$ die Menge der Knoten, E = $\{e_{1},e_{2},...,e_{m}\}$ die Menge der Kanten.
Die DCEL speichert für jede Kante $e_{i}$ des Graphens einen Eintrag mit den Daten ($V_{1},V_{2},F_{1},F_{2},P_{1},P_{2}$):
* $V_{1}$: Startknoten der Kante $e_{i}$
* $V_{2}$: Endknoten der Kante $e_{i}$
* $F_{1}$: Name der Fläche auf der linken Seite der Kante
* $F_{2}$: Name der Fläche auf der rechten Seite der Kante
* $P_{1}$: Zeiger auf die erste Kante mit Knoten $V_{1}$, auf die man trifft, wenn man die Kante $e_{i}$ gegen den Uhrzeigersinn um $V_{1}$ dreht
* $P_{2}$: Analog zu $P_{1}$, diesmal mit Knoten $V_{2}$

## Beispiel

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}$ im Uhrzeigersinn um $V_{1}$ und $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.