Search: in
Graph (data structure)
Graph (data structure) Encyclopedia
  Tutorials     Encyclopedia     Dictionary     Directory  
Graph_(data_structure) Email this to a friend      Graph_(data_structure)

Graph (data structure)

A labeled graph of 6 vertices and 7 edges.
A labeled graph of 6 vertices and 7 edges.
In computer science, a graph is a kind of data structure, specifically an abstract data type (ADT), that consists of a set of nodes (also called vertices) and a set of edges that establish relationships (connections) between the nodes. The graph ADT follows directly from the graph concept from mathematics.

Informally, G=(V,E) consists of vertices, the elements of V, which are connected by edges, the elements of E. Formally, a graph, G, is defined as an ordered pair, G=(V,E), where V is a set (usually finite) and E is a set consisting of two element subsets of V.

Contents


Choices of representation

Two main data structures for the representation of graphs are used in practice. The first is called an adjacency list, and is implemented by representing each node as a data structure that contains a list of all adjacent nodes. The second is an adjacency matrix, in which the rows and columns of a two-dimensional array represent source and destination vertices and entries in the array indicate whether an edge exists between the vertices. Adjacency lists are preferred for sparse graphs; otherwise, an adjacency matrix is a good choice. Finally, for very large graphs with some regularity in the placement of edges, a symbolic graph is a possible choice of representation.

Comparison with other data structures

Graph data structures are non-hierarchical and therefore suitable for data sets where the individual elements are interconnected in complex ways. For example, a computer network can be modeled with a graph.

Hierarchical data sets can be represented by a binary or nonbinary tree. It is worth mentioning, however, that trees can be seen as a special form of graph.

Operations

Graph algorithms are a significant field of interest within computer science. Typical operations associated with graphs are: finding a path between two nodes, like depth-first search and breadth-first search and finding the shortest path from one node to another, like Dijkstra's algorithm. A solution to finding the shortest path from each node to every other node also exists in the form of the Floyd-Warshall algorithm.

A directed graph can be seen as a flow network, where each edge has a capacity and each edge receives a flow. The Ford-Fulkerson algorithm is used to find out the maximum flow from a source to a sink in a graph.

The graphs can be represented in two ways. One is adjacency matrix and adjacency list.

For example, let us consider the following graph

             A----------->B
             |            ^
             |            |
             |            |
             V            |
             C ------------

Adjacency Matrix

          A B C
       A  0 1 1
       B  0 0 0 
       C  0 1 0

Adjacency List

       A  ----> | B | ----> | C | ---- NULL
       B  ----> ---- NULL 
       C  ----> | B | ---- NULL

External links

bg:???? (??????????) de:Graph (Graphentheorie) it:Grafo lt:Grafas (duomen? strukt?ra) hu:Gráf (halmazelmélet) ja:??? (?????) pl:Graf (matematyka) ru:???? (??????????) sr:???? (????????? ????????) th:???? (??????????) tl:Talangguhit (kayarian ng datos) zh:?





Source: Wikipedia | The above article is available under the GNU FDL. | Edit this article



Related Links in Graph (data structure)

Search for Graph (data structure) in Tutorials
Search for Graph (data structure) in Encyclopedia
Search for Graph (data structure) in Dictionary
Search for Graph (data structure) in Open Directory
Search for Graph (data structure) in Store
Search for Graph (data structure) in PriceGig



Help build the largest human-edited directory on the web.
Submit a Site - Open Directory Project - Become an Editor

Advertisement

Advertisement



Graph (data structure)
Graph_(data_structure) top Graph_(data_structure)

Home - Add TutorGig to Your Site - Disclaimer

©2008-2009 TutorGig.com. All Rights Reserved. Privacy Statement