1、实验内容:
建立下图的邻接表或邻接矩阵,并输出之;
2、实现代码:
#include<iostream>
using namespace std;
//以0结点为起点实现上述图的深度优先和广度优先遍历算法;
#define MVNum 100 //最大顶点数
#define MAXQSIZE 100 //最大队列长度
bool visited[MVNum]; //访问标志数组,其初值为"false"
bool InitVisited(int vex)
{
for (int i = 0; i < vex; i++)
visited[i] = false;
}
//图的邻接矩阵
typedef struct
{
char vexs[MVNum]; //顶点表
int arcs[MVNum][MVNum]; //邻接矩阵
}Graph;
//队列的定义及操作
typedef struct
{
int *base; //初始化的动态分配存储空间
int front; //头指针,若队列不空,指向队头元素
int rear; //尾指针,若队列不空,指向队尾元素的下一个位置
}sqQueue;
//构造一个空队列Q
void InitQueue(sqQueue &Q)
{
Q.base = new int[MAXQSIZE];
if (!Q.base) exit(1); //存储分配失败
Q.front = Q.rear = 0;
}
//插入元素e为Q的新的队尾元素
void EnQueue(sqQueue &Q, int e) {
if ((Q.rear + 1) % MAXQSIZE == Q.front)
return;
Q.base[Q.rear] = e;
Q.rear