c++图的邻接矩阵与邻接表

本文详细介绍了如何使用C++来实现图的两种常见数据结构——邻接矩阵和邻接表。邻接矩阵适用于表示顶点间相互连接的情况,而邻接表则在稀疏图中更为节省空间。通过实例代码,阐述了这两种表示方法的优缺点及其应用场景。
摘要由CSDN通过智能技术生成

邻接矩阵

#include<iostream>
#define MAX_VERTS 20

using namespace std;

class Vertex
{
   
public:
	Vertex(char lab) {
    Label = lab; }
private:
	char Label;
};

class Graph //邻接矩阵
{
   
public:
	Graph();
	~Graph();
	void addVertex(char lab);
	void addEdge(int start, int end);
	void printMatrix();

private:
	Vertex* vertexList[MAX_VERTS];//数组中为指向顶点的指针
	int nVerts; //顶点个数
	int adjMat[MAX_VERTS][MAX_VERTS];
};


Graph::Graph()
{
   
	nVerts = 0;
	for (int i = 0; i < MAX_VERTS; i++)
	{
   
		for (int j = 0; j < MAX_VERTS; j++)
			adjMat[i][j] = 0;
	}
}

void Graph::addVertex(char lab)
{
   
	vertexList[nVerts] = new Vertex(lab); //创建一个节点
	nVerts++;
}

void Graph::addEdge(int start, int end)
{
   
	adjMat[start][end] = 1;
	adjMat[end][start] = 1;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值