一、【实验目的】
- 了解图的定义、特点,区分无向图和有向图的概念;
- 了解图的数据结构和搜索方法;
- 掌握无向图的邻接矩阵、邻接表的表示方法;
- 写出无向图的深度优先搜索程序。
二、【实验内容】
设无向图G有n个点e条边,写一算法建立无向图G的邻接表,并按照深度优先搜索输出顶点。
三、【实验步骤与要求】
- 了解图的定义、特点,区分无向图和有向图的概念;
- 了解图的数据结构和搜索方法;
- 掌握无向图的邻接矩阵、邻接表的表示方法;
- 写出无向图的深度优先搜索程序。
#include<stdio.h>
#include<stdlib.h>
//函数结果状态代码
#define TRUE 1
#define FALSE 0
#define OK 1
#define ERROR 0
#define INFEASIBLE -1
#define OVERFLOW -2
typedef int Status; //Status是函数的类型,其值是函数结果代码
typedef char VertexType; //图的顶点类型定义为char
//---------图的邻接表存储表示----------
#define MAX_VERTEX_NUM 20
typedef struct ArcNode{ //弧结点【表结点】
int adjvex; //该弧所指向的顶点的位置
struct ArcNode *nextarc; //指向下一条弧的指针
}ArcNode;
typedef struct VNode{ //顶点结点【头结点】
VertexType data; //顶点信息
ArcNode *