Doubly connected edge list
来源:互联网 发布:windows api 创建窗体 编辑:程序博客网 时间:2024/06/05 18:55
The doubly connected edge list (DCEL) is a data structure to represent an embedding of a planar graph in the plane and polytopes in 3D. This data structure provides efficient manipulation of the topological information associated with the objects in question (vertices, edges, faces). It is used in many algorithms of computational geometry to handle polygonal subdivisions of the plane, commonly called planar straight-line graphs (PSLG).[1] For example, a Voronoi diagram is commonly represented by a DCEL inside a bounding box.
This data structure was originally suggested by Muller and Preparata[2] for representations of 3D convex polyhedra.
Later a somewhat different data structuring was suggested, but the name "DCEL" was retained.
For simplicity, only connected graphs are considered, however the DCEL structure may be extended to handle disconnected graphs as well.
Data structure
DCEL is more than just a doubly linked list of edges. In the general case, a DCEL contains a record for each edge,vertex and face of the subdivision. Each record may contain additional information, for example, a face may contain the name of the area. Each edge usually bounds two faces and it is therefore convenient to regard each edge as half-edge. Each half-edge bounds a single face and thus has a pointer to that face. A half-edge has a pointer to the next half-edge and previous half-edge of the same face. To reach the other face, we can go to the twin of the half-edge and then traverse the other face. Each half-edge also has a pointer to its origin vertex (the destination vertex can be obtained by querying the origin of its twin).
Each vertex v contains the coordinates of the vertex and also stores a pointer to an arbitrary edge that has v as its origin. Each face stores a pointer to some half-edge of its outer boundary (if the face is unbounded then pointer is null). It also has a list of half-edges, one for each hole that may be incident within the face. It should be noted that if the vertices or faces do not hold any interesting information, there is no need to store them, thus saving space and reducing the data structure complexity.
- Doubly connected edge list
- Doubly connected edge list
- Doubly linked list
- Doubly Linked List
- HDU 4654 k-edge connected components
- hdu 4654 k-edge connected components
- HWK:A doubly linked list using class
- (转)A Memory-Efficient Doubly Linked List
- 【Hackerrank】Reverse a doubly linked list
- A Memory-Efficient Doubly Linked List
- Convert BST to Sorted Doubly-Linked List
- 双向链表(Doubly Linked List)
- 链表ALDS1-3-C:Doubly Linked List
- 双链表基本操作 doubly linked list
- 第四章 ALDS1_3_C:Doubly Linked List 链表
- Linked List/Singly-Linked List/Doubly-Linked List
- XOR Linked List – A Memory Efficient Doubly Linked List
- Reverse a doubly linked list in O(1) time
- 百度公开警告不正当的SEO的目的
- C语言学习笔记(三)C的程序结构与编译执行过程
- Hibernate事务异常,查询和更新并存卡死表
- error: Data verification failed at address 0xxxx Please verify target memory and memory map
- JavaBean 报错
- Doubly connected edge list
- KeyguardScreenCallback
- 2003系统访问其他电脑的共享资源:管理工具--服务--Server、Workstation、Computer Browser三个主要服务开启
- 关于activity的劫持
- 子网掩码与子网划分
- ISTQB AL-TM连载系列03:测试环境的有效管理
- .NET机房收费系统总结
- s3c6410 LCD驱动的分析过程——定位相关源代码
- 2012年新的SEO影响因素