| [12] | 1 | <HTML> | 
|---|
 | 2 | <!-- | 
|---|
 | 3 |   -- Copyright (c) Jeremy Siek 2001 | 
|---|
 | 4 |   -- | 
|---|
 | 5 |   -- Permission to use, copy, modify, distribute and sell this software | 
|---|
 | 6 |   -- and its documentation for any purpose is hereby granted without fee, | 
|---|
 | 7 |   -- provided that the above copyright notice appears in all copies and | 
|---|
 | 8 |   -- that both that copyright notice and this permission notice appear | 
|---|
 | 9 |   -- in supporting documentation.  Silicon Graphics makes no | 
|---|
 | 10 |   -- representations about the suitability of this software for any | 
|---|
 | 11 |   -- purpose.  It is provided "as is" without express or implied warranty. | 
|---|
 | 12 |   --> | 
|---|
 | 13 | <Head> | 
|---|
 | 14 | <Title>Vertex Mutable Graph</Title> | 
|---|
 | 15 | <BODY BGCOLOR="#ffffff" LINK="#0000ee" TEXT="#000000" VLINK="#551a8b"  | 
|---|
 | 16 |         ALINK="#ff0000">  | 
|---|
 | 17 | <IMG SRC="../../../boost.png"  | 
|---|
 | 18 |      ALT="C++ Boost" width="277" height="86">  | 
|---|
 | 19 |  | 
|---|
 | 20 | <BR Clear> | 
|---|
 | 21 |  | 
|---|
 | 22 | <H2><A NAME="concept:VertexMutableGraph"> | 
|---|
 | 23 | Vertex Mutable Graph | 
|---|
 | 24 | </H2> | 
|---|
 | 25 |  | 
|---|
 | 26 | A vertex mutable graph can be changed by adding or removing | 
|---|
 | 27 | vertices. The memory management is the responsibility of the graph | 
|---|
 | 28 | implementation. The graph user need only make calls to | 
|---|
 | 29 | <TT>add_vertex</TT> and <TT>remove_vertex</TT> and the graph | 
|---|
 | 30 | implementation does the rest. | 
|---|
 | 31 |  | 
|---|
 | 32 | <H3>Refinement of</H3> | 
|---|
 | 33 |  | 
|---|
 | 34 | <a href="./Graph.html">Graph</a> and <a | 
|---|
 | 35 | href="http://www.sgi.com/tech/stl/DefaultConstructible.html">DefaultConstructible</a> | 
|---|
 | 36 |  | 
|---|
 | 37 | <H3>Associated Types</H3> | 
|---|
 | 38 |  | 
|---|
 | 39 | No additional associated types. | 
|---|
 | 40 |  | 
|---|
 | 41 | <h3>Valid Expressions</h3> | 
|---|
 | 42 |  | 
|---|
 | 43 | <ul> | 
|---|
 | 44 | <li><a name="sec:add_vertex"><TT>add_vertex(g)</TT></a>  | 
|---|
 | 45 | <b>returns</b> <TT>vertex_descriptor</TT> | 
|---|
 | 46 | <br><br> | 
|---|
 | 47 |  | 
|---|
 | 48 | <b>Semantics:</b>  Add a new vertex to the graph. The | 
|---|
 | 49 |         <TT>vertex_descriptor</TT> for the new vertex is returned.<br> | 
|---|
 | 50 | </li> | 
|---|
 | 51 |  | 
|---|
 | 52 | <li><a name="sec:remove_vertex"><tt>remove_vertex(u, g)</tt></a> | 
|---|
 | 53 | <b>returns</b> <tt>void</tt><br><br> | 
|---|
 | 54 |  | 
|---|
 | 55 | <b> Semantics:</b>  Remove <i>u</i> from the vertex set of the graph. | 
|---|
 | 56 | <br> | 
|---|
 | 57 | <b> Preconditions:</b> <i>u</i> is a valid vertex descriptor of graph <i>g</i> | 
|---|
 | 58 |      and there are no edges incident to vertex <i>u</i>. The function | 
|---|
 | 59 |      <TT>clear_vertex</TT> can be used to remove all incident edges. | 
|---|
 | 60 | <br> | 
|---|
 | 61 | <b> Postconditions: </b> <TT>num_vertices(g)</TT> is one less; <i>u</i> | 
|---|
 | 62 |       no longer appears in the vertex set of the graph and it | 
|---|
 | 63 |       is no longer a valid vertex descriptor.  | 
|---|
 | 64 | </li> | 
|---|
 | 65 |  | 
|---|
 | 66 | </ul> | 
|---|
 | 67 |  | 
|---|
 | 68 | <H3>Complexity guarantees</H3> | 
|---|
 | 69 | <ul> | 
|---|
 | 70 |   <li> Vertex insertion is guaranteed to be amortized constant time. | 
|---|
 | 71 |   | 
|---|
 | 72 |   <li> Vertex removal is at most <TT>O(|E| + |V|)</TT>. | 
|---|
 | 73 | </ul> | 
|---|
 | 74 |  | 
|---|
 | 75 |  | 
|---|
 | 76 | <br> | 
|---|
 | 77 | <HR> | 
|---|
 | 78 | <TABLE> | 
|---|
 | 79 | <TR valign=top> | 
|---|
 | 80 | <TD nowrap>Copyright © 2000-2001</TD><TD> | 
|---|
 | 81 | <A HREF="../../../people/jeremy_siek.htm">Jeremy Siek</A>, Indiana University (<A HREF="mailto:jsiek@osl.iu.edu">jsiek@osl.iu.edu</A>) | 
|---|
 | 82 | <A HREF="../../../people/jeremy_siek.htm">Lie-Quan Lee</A>, Indiana University (<A HREF="mailto:llee@cs.indiana.edu">llee@cs.indiana.edu</A>) | 
|---|
 | 83 | </TD></TR></TABLE> | 
|---|
 | 84 |  | 
|---|
 | 85 | </BODY> | 
|---|
 | 86 | </HTML>  | 
|---|
 | 87 |  | 
|---|