604C++邻接矩阵创建图及深度、广度遍历

本文介绍了如何使用C++通过邻接矩阵来创建图,并实现了深度优先遍历(BFS)和广度优先遍历(DFS)算法。首先,定义了一个结构体用于存储图的信息,然后提供了创建图、输出矩阵、BFS和DFS的函数。在主函数中,用户可以输入图的类型、顶点数量和边数量,程序将根据输入进行相应的操作。
摘要由CSDN通过智能技术生成
#include "stdafx.h"  
#include<iostream>  
#include<queue>   //队列库
using namespace std;
#define VERTEX_MAX 26   //图的最大顶点数     
#define MAXVALUE 32767 //最大值(可设为一个最大整数)   
typedef struct //定义邻接矩阵图结构   
{
	char Vertex[VERTEX_MAX]; // 字符数组保存顶点信息(序号或字母)   
	int Edges[VERTEX_MAX][VERTEX_MAX]; // 字符数组保存边的权   
	int isTrav[VERTEX_MAX]; // 字符数组表示点的遍历标志   
	int VertexNum; //顶点数量   
	int EdgeNum;//边数量   
	int GraphType; //图的类型(0:无向图,1:有向图)      
}MatrixGraph;

void CreateMatrixGraph(MatrixGraph *G)//创建邻接矩阵图   
{
	int i, j, k, weight;
	char start, end; //边的起始顶点  
	for (i = 0; i < G->VertexNum; i++)  //清空矩阵  
	{
		for (j = 0; j < G->VertexNum; j++)
			G->Edges[i][j] = MAXVALUE; //设置矩阵中各元素的值为最大值  
	}
	cout << "输入各顶点信息\n";
	for (i = 0; i<G->VertexNum; i++) //输入顶点   
	{
		printf("第%d个顶点:", i + 1);
		cin >> G->Vertex[i]; //保存到各顶点数组元素中  
	}
	printf(
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值