README-SGB
上传用户:rrhhcc
上传日期:2015-12-11
资源大小:54129k
文件大小:3k
源码类别:

通讯编程

开发平台:

Visual C++

  1. Very Brief Overview of the Stanford GraphBase 
  2.                 Ken Calvert and Ellen Zegura       
  3.                     College of Computing
  4.                         Georgia Tech
  5. $Id: README-SGB,v 1.1 1996/10/04 13:28:20 ewz Exp $
  6. The Georgia Tech Internetwork Topology Models (GT-ITM) are
  7. built on top of the Stanford GraphBase (SGB), a platform of data
  8. structures and routines for representing and manipulating 
  9. graphs.  SGB was developed by Donald Knuth and is described
  10. in detail in the (fun) book:
  11. "The Stanford GraphBase: A Platform for Combinatorial Computing,"
  12. D. Knuth, Addison-Wesley, 1994.
  13. Code is available at the following sites:
  14. http://www-cs-staff.stanford.edu/~knuth/sgb.html
  15. ftp://labrea.stanford.edu/pub/sgb
  16. You do not need to know much about SGB in order to use
  17. the topology modeling code, however a brief overview will
  18. be helpful.  We have provided a routine that converts from
  19. the SGB file format to an alternate file format (src/sgb2alt.c).
  20. The alternate format may be easier to parse for some users.
  21. If you want to modify or more deeply understand the topology
  22. modeling code, you will probably need more information about
  23. SGB than is provided here.
  24. -------------------------------------------------------------
  25. A graph is represented by a structure containing seven dedicated 
  26. fields and six utility fields (utility fields are explained
  27. in more detail below):
  28. g->vertices Pointer to array of vertices
  29. g->n Long integer - number of vertices
  30. g->m Long integer - number of edges
  31. g->id Character string for graph id
  32. g->util_types Character string indicating which utility
  33. fields are used and in what form (see below)
  34. g->data Space used for graph data 
  35. g->aux_data Auxiliary space used for graph data
  36. (Note that data and aux_data are not typically
  37. read or written by application programs.)
  38. g->uu,vv,ww, Utility fields
  39.    xx,yy,zz
  40. Each vertex is represented by a structure containing
  41. two dedicated fields and six utility fields:
  42. v->arcs Pointer to first arc out of this vertex
  43. v->name Character string for vertex name
  44. v->u,v,w,x,y,z Utility fields
  45. Each arc is represented by a structure containing three
  46. dedicated fields and two utility fields:
  47. a->tip Pointer to vertex at tip of arc
  48. a->next Pointer to next arc in linked list
  49. a->len Long integer - length
  50. a->a,b Utility fields
  51. Note that the arc representation is directed; the platform
  52. supports undirected edges by representing each edge as
  53. two arcs.  
  54. The utility fields may be used by the application program to 
  55. associate additional information with vertices and edges.
  56. Each utility field is a union containing five types:
  57. u.V Pointer to vertex
  58. u.A Pointer to arc
  59. u.G Pointer to graph
  60. u.S Character string
  61. u.I Long integer
  62. The util_types field in the graph structure indicates
  63. which utility fields in the graph, vertex and arc structures
  64. are used, and what types are used.  util_types contains
  65. 15 characters; each character is one of V, A, G, S or I
  66. (corresponding to the types above) or Z (indicating that the
  67. field is unused.  The first six characters are for the vertex
  68. utility fields, the next two are for the arc and the next six 
  69. are for the graph.  (That leaves one more character...I don't 
  70. know what that is for.)
  71. You can examine the details of SGB representation by
  72. perusing the file gb_graph.h.  Note, however, that this is
  73. C code generated from CWEB, Knuth's system for structured 
  74. programming and documentation.  As such, it is not intended
  75. for human reading and looks somewhat different than 
  76. standard C code.