图的定义实例
1.#include <stdio.h>
#include <stdlib.h>
#include "Graph.h"
/* 图的定义 */
int main(int argc, char *argv[])
{
Graph* graph = Graph_Create(5);
Graph_AddEdge(graph, 0, 1, 1);
Graph_AddEdge(graph, 1, 0, 1);
Graph_Destroy(graph);
return 0;
}
2.
#ifndef _GRAPH_H_
#define _GRAPH_H_
typedef void Graph;
typedef void Vertex;
/* 创建并返回有n个顶点的图 */
Graph* Graph_Create(int n);
/* 销毁graph所指向的图 */
void Graph_Destroy(Graph* graph);
/* 将graph所指图的边集合清空 */
void Graph_Clear(Graph* graph);
/* 在graph所指图中的v1和v2之间加上边,且边的权为w */
int Graph_AddEdge(Graph* graph, int v1, int v2, int w);
/* 将graph所指图中v1和v2之间的边删除,返回权值 */
int Graph_RemoveEdge(Graph* graph, int v1, int v2);
/* 将graph所指图中v1和v2之间的边的权值返回 */
int Graph_GetEdge(Graph* graph, int v1, int v2);
/* 将graph所指图中v顶点的度数 */
int Graph_TD(Graph* graph, int v);
/* 将graph所指图中的顶点数返回 */
int Graph_VertexCount(Graph* graph);
/* 将graph所指图中的边数返回 */
int Graph_EdgeCount(Graph* graph);
#endif
3.#include <malloc.h>
#include "Graph.h"
Graph* Graph_Create(int n)
{
return NULL;
}
void Graph_Destroy(Graph* graph)
{
}
void Graph_Clear(Graph* graph)
{
}
int Graph_AddEdge(Graph* graph, int v1, int v2, int w)
{
return 0;
}
int Graph_RemoveEdge(Graph* graph, int v1, int v2)
{
return 0;
}
int Graph_GetEdge(Graph* graph, int v1, int v2)
{
return 0;
}
int Graph_TD(Graph* graph, int v)
{
return 0;
}
int Graph_VertexCount(Graph* graph)
{
return 0;
}
int Graph_EdgeCount(Graph* graph)
{
return 0;
}