**Table of Contents**

- 1. Introduction
- 2. Graphs
- 3. Hierarchy of graphs
- 4. Attributes
- 5. Properties
- 6. TUTORIAL Intro.
- 7. TUTORIAL 001 : Graphs creation, adding and deleting nodes or edges.
- 8. TUTORIAL 002 : Iterating over a graph (class Iterator and the macro forEach)
- 1. Header files (Same as Tutorial 1)
- 2. Iterating over all nodes
- 3. Iterating through a node predecessors
- 4. Iterating through a node successors
- 5. Iterating through a node neighbors (predecessors and successors)
- 6. Iterating through a node incoming edges
- 7. Iterating through a node outgoing edges
- 8. Iterating through a node adjacent edges
- Don't forget memory leaks
- 9. Iterating on edges (all edges).
- 10. The forEach Macro
- Source Code

- 9. TUTORIAL 003 : Properties
- 10. TUTORIAL 004 : Create your first subgraph.
- 11. TUTORIAL 005 : Properties and subgraphs
- 12. TUTORIAL 006 : Edges order.
- 13. TUTORIAL 007 : Mutable Collection
- 14. TUTORIAL 008 : Graph Tests
- 15. TUTORIAL 009 : ObservableGraph

Efficient visualization of graphs and their usage for data analysis implies

the manipulation of the structure of the graph

the extraction of parts of it

association of values to a graph's elements (nodes and edges)

the computation of intrinsic parameters (parameters derived from a graph's structure, e.g. in a filesystem graph (directory tree): number of files in a directory, can be computed by counting outgoing edges)

the computation of extrinsic parameters (parameters derived from external information, e.g. in a filesystem graph: file size)

This chapter describes the Tulip data structure that takes into account all the requirement of a graph visualization system. For each part we describe the general principle and then we give examples explaining how to do it with the Tulip library.