1、图的抽象数据类型

 1 ADT Graph
 2 {
 3   数据:
 4     Graph = (Vertex, Edge)是可以用不同方式存储的图,Vertex是顶点集,
 5     Edge = { <vtx_1, vtx_2> | vtx_1, vtx_2属于Vertex, vtx_1不等于vtx_2, <vtx_1, vtx_2>是连接vtx_1, vtx_2的边 }
 6 
 7   操作:
 8     void InitGraph(Graph &G, int vtxCnt, bool directed);                // 按顶点个数和有向标志构造图
 9     void DestroyGraph(Graph &G);                                        // 清除原有的图G
10     bool IsDirected(Graph &G);                                          // 判断图G是否是有向图
11     int  VertexCount(Graph &G);                                         // 求出并返回图G的顶点数
12     int  EdgeCount(Graph &G);                                           // 求出并返回图G的边数
13     int  FirstAdjoinVertex(Graph &G, int vtx);                          // 返回vtx的第一个邻接顶点,若无邻接点返回-1
14     int  NextAdjoinVertex(Graph &G, int vtx_1, int vtx_2);              // 返回vtx_1的下一个邻接点(相对于vtx_2)
15     void Insert(Graph &G, int vtx_1, int vtx_2);                    // 在图中插入边<vtx_1, vtx_2>
16     void Delete(Graph &G, int vtx_1, int vtx_2);                    // 在图中删除边<vtx_1, vtx_2>
17     bool EdgeExisting(Graph &G, int vtx_1, int vtx_2);                  // 判断边<vtx_1, vtx_2>是否是图的边
18     void Traverse(Graph &G, int vtx, *Visit());                         // 从顶点vtx开始遍历图,Visit()代表遍历策略
19 };
View Code

相关文章:

  • 2021-06-11
  • 2021-07-18
  • 2022-12-23
  • 2022-01-07
  • 2021-10-04
猜你喜欢
  • 2022-12-23
  • 2022-01-08
  • 2021-09-27
  • 2021-11-15
  • 2022-01-04
  • 2022-12-23
相关资源
相似解决方案