数据结构中图的邻接矩阵表示方法

#include<iostream>
using namespace std;
typedef char vertextype;
typedef int edgetype;
#define maxvex 100
#define infinity 1000
class MGraph{

public:
	vertextype vexs[maxvex];
	edgetype arc[maxvex][maxvex];
	int numvertexs,numedges;//图的顶点数目和图的边的数目
	MGraph(const int &v,const int &e):numvertexs(v),numedges(e){}
	void creategraph();//创建图结构
	void displaygraph();//显示图的结构

};
void MGraph::creategraph()
{  cout<<"下面请输入顶点的元素类型值,输入的个数为"<<numvertexs<<endl;
	for(int i=0;i<numvertexs;++i)
	{
		cin>>vexs[i];
	}
	cin.clear();
	cout<<"下面请为邻接矩阵赋值,矩阵的大小为:"<<numvertexs<<"*"<<numvertexs<<endl;
	for(int i=0;i<numvertexs;++i)
	{
		for(int j=0;j<numvertexs;++j)
		{
			cin>>arc[i][j];
		}
	}

}
void MGraph::displaygraph()
{   cout<<"下面输出的是顶点中的元素"<<endl;
	for(int i=0;i<numvertexs;++i)
	{
		cout<<vexs[i]<<" ";
	}
	cout<<endl;

	for(int i=0;i<numvertexs;++i)
	{
		for(int j=0;j<numvertexs;++j)
		{
			cout<<arc[i][j]<<'\t';
		}
		cout<<endl;
	}
}
int main()
{    MGraph G(4,5);
    G.creategraph();
	G.displaygraph();

	system("pause");
	return 0;
}

时间: 2025-01-08 18:15:43

数据结构中图的邻接矩阵表示方法的相关文章

图的邻接矩阵表示方法以及遍历

下面的程序可以用来创建有向图,有向网,无向图,无向网.对于图来说如果来个顶点之间存在边,则在矩阵中用1表示,无边则用0表示.在网络中,边是对应权值的. 图的遍历可以分为深度优先遍历和广度优先遍历. 深度优先遍历的思想是,选择某个未被访问的顶点并访问,然后从该顶点出发,选择第一个和该顶点邻接的未被访问的顶点进行访问.在该过程中可以设置一个标识数组flags[]来标识各个顶点是否被访问到. 广度优先搜索的思想是,选择某个未被访问的顶点并访问,然后依次访问该顶点所以的邻接顶点,对于每次被访问的顶点都对

看数据结构写代码(35) 图的邻接矩阵表示法

杂谈:最近清明小长假,好好的放松了一下.节前 和 节后 都有点 松懈.不好,不好.贵在坚持.加油. 图的邻接矩阵表示法是用 两个数组 来表示 图的数据结构.一个是顶点数组,另一个是邻接矩阵数组.邻接矩阵 里存放着 顶点的关系. 用邻接矩阵表示图,在 看 顶点之间 是否有边,或者 求顶点的度等操作时比较简单.但空间浪费巨大,在插入,删除 顶点 和边 操作时 需要 移动大量数据,造成不便.所以在插入删除比较多,节点数比较多的时候 不宜 使用这种结构. 下面上代码: 源代码网盘地址:点击打开链接 //

数据结构(C实现)------- 图的邻接矩阵表示

[本文是自己学习所做笔记,欢迎转载,但请注明出处:http://blog.csdn.net/jesson20121020] 图的邻接表表示法类似于树的孩子链表表示法,就是对图中的每个顶点vi,将所有邻接于vi的顶点链接成一个单链表,这个单链表就称为顶点vi的邻接表.在邻接表中有两种结点结构:头结点(vexdata,firstarc).表结点(adjvex,nextarc). 其中,表头结点由顶点域(vexdata)和指向第一条邻接边的指针域(firstarc)构成:表结点由邻接点域(adjvex

图的邻接矩阵表示方式——无权图的最短路径

1 #include<stdio.h> 2 #include<stdlib.h> 3 4 #define OK 1 5 #define NO 0 6 #define TRUE 1 7 #define FALSE 0 8 #define ERROR -1 9 10 #define MaxVerTexNum 100 11 #define INFINITY 65535 12 typedef int ElementType; 13 typedef int Status; 14 typede

图邻接矩阵表示

1.图的邻接矩阵表示法 在图的邻接矩阵表示法中: ① 用邻接矩阵表示顶点间的相邻关系 ② 用一个顺序表来存储顶点信息 2.图的邻接矩阵(Adacency Matrix) 设G=(V,E)是具有n个顶点的图,则G的邻接矩阵是具有如下性质的n阶方阵: [例]下图中无向图G 5 和有向图G 6 的邻接矩阵分别为A l 和A 2 . 3.网络的邻接矩阵 若G是网络,则邻接矩阵可定义为: 其中: w ij 表示边上的权值: ∞表示一个计算机允许的.大于所有边上权值的数. [例]下面带权图的两种邻接矩阵分别

图的邻接表表示与无环图的拓扑排序

一.  图的最常用的表示方法是邻接矩阵和邻接表. 1,邻接矩阵 邻接矩阵其实就是一个二维数组,对于每条边<u,v>,我们就令A[u][v] = 1,如果图为有权图,我们也可以令A[u][v]等于该权,这么表示的优点是非常简单,但是它的空间需求很大,如果图是稠密的,邻接矩阵是合适的表示方法,如果图是稀疏的,那这种方法就太浪费空间了,下面给出图的邻接矩阵表示例子. 2 邻接表 邻接表是图的常用储存结构之一.邻接表由表头结点和表结点两部分组成,其中图中每个顶点均对应一个存储在数组中的表头结点.如下图

数据结构学习笔记05图 (邻接矩阵 邻接表--&gt;BFS DFS)

数据结构之图 图(Graph) 包含 一组顶点:通常用V (Vertex) 表示顶点集合 一组边:通常用E (Edge) 表示边的集合 边是顶点对:(v, w) ∈E ,其中v, w ∈ V 有向边<v, w> 表示从v指向w的边(单行线) 不考虑重边和自回路 无向图:边是无向边(v, w) 有向图:边是有向边<v, w> 连通:如果从V到W存在一条(无向)路径,则称V和W是连通的 连通图(Connected Graph):如果对于图的任一两个顶点v.w∈V,v和w都是连通的,则称

浅谈数据结构之图的邻接表深度和广度优先遍历(九)

邻接矩阵是一种不错的图存储结构,但是我们发现,对于边数相对较少的图,这种结构是存在对存储空间的极大浪费的.我们知道,顺序存储结构存在预先分配内存可能造成空间浪费的问题,于是引出了链式存储的结构.同样的,我们也可以考虑对边或弧使用链式存储的方式来避免空间浪费的问题.因此,对于图的存储结构,我们同样引入了一种数组与链表相组合的存储方法,我们一般称之为邻接表. 邻接表的处理方法是这样的:(1).图中顶点用一个一维数组存储,当然,顶点也可以用单链表来存储,不过数组可以较容易的读取顶点的信息,更加方便:另

[Data Structure] 数据结构中各种树

数据结构中有很多树的结构,其中包括二叉树.二叉搜索树.2-3树.红黑树等等.本文中对数据结构中常见的几种树的概念和用途进行了汇总,不求严格精准,但求简单易懂. 1. 二叉树 二叉树是数据结构中一种重要的数据结构,也是树表家族最为基础的结构. 二叉树的定义:二叉树的每个结点至多只有二棵子树(不存在度大于2的结点),二叉树的子树有左右之分,次序不能颠倒.二叉树的第i层至多有2i-1个结点:深度为k的二叉树至多有2k-1个结点:对任何一棵二叉树T,如果其终端结点数为n0,度为2的结点数为n2,则n0=