无向图的邻接矩阵

原创 2016年05月30日 11:28:30

1、图是一种复杂的数据结构,表现在不仅各顶点的度可以不同,而且顶点之间的关系也错综复杂。从图的定义可知一个图的信息包括两个部分:图中顶点的信息和描述顶点之间关系——边或弧的信息。因此无论采取什么方法来建立图的存储结构,都要完整、准确地反映这两部分的信息。
2、用邻接矩阵存储图,很容易确定图中任意两个顶点之间是否相连。但是,要确定图中具体有多少条边,则必须按行、按列对每个元素进行查找后方能确定,因此花费的时间代价较大,这也是用邻接矩阵存储图的局限性。

#include <stdio.h>
#include <stdlib.h>
#define MAXSIZE 20

typedef struct{
    int vertex[MAXSIZE];            //节点信息
    int edge[MAXSIZE][MAXSIZE];     //边信息   
}Graph;

void createGraph(Graph * p,int n,int e){
    Graph * g = p;

    for(int i=0;i<n;i++){           //输入节点值
        g->vertex[i] = i;

    for(int j=0;j<n;j++){           //初始化邻接矩阵
        for(int k=0;k<n;k++){
            g->edge[j][k] = 0;
        }   
    }   

    for(int t=0;t<e;t++){           //连通节点      
        printf("请输入边(i,j)\n");
        scanf("%d,%d",&i,&j);
        g->edge[i][j] = 1;
        g->edge[j][i] = 1;
    }
}

int main(){
    Graph * p = (Graph *)malloc(sizeof(Graph));
    int n,e;

    printf("请输入节点的个数。\n");
    scanf("%d",&n);
    printf("请输入边数。\n");
    scanf("%d",&e);
    createGraph(p,n,e);
    printf("无向图的邻接矩阵表示为:\n");

    for(int i=0;i<n;i++){
        for(int j=0;j<n;j++){
            printf("%4d",p->edge[i][j]);
        }
        printf("\n");
    }
    return 0;
}
版权声明:本文为博主原创文章,未经博主允许不得转载。

图的定义,存储结构是邻接矩阵(无向图,包含带权图)

//头文件 //Edge.h #ifndef EDGE_H #define EDGE_H #include using namespace std; template class Edge{ publ...
  • qq_28633157
  • qq_28633157
  • 2015年12月14日 18:47
  • 1352

有向图和无向图用邻接矩阵储存

一般存储图的方式有两种:一是用邻接矩阵表示,二是用邻接链表。 所谓用邻接矩阵,是用一个二维数组存储,边使用矩阵来构建模型,这使得每一个顶点和其它顶点之间都有边的有无 的 表示的机会。若有边,则他们交点...
  • smarter_shability
  • smarter_shability
  • 2017年04月08日 09:15
  • 3633

无向带权图的邻接矩阵表示法

/*无向带权图的邻接矩阵表示法*/ #include #define vnum 20 typedef struct gp { int vexs[vnum]; /...
  • dwenxue
  • dwenxue
  • 2017年06月01日 09:59
  • 2041

无向图的邻接矩阵存储及输出

  • 2011年11月27日 11:34
  • 1KB
  • 下载

无向图的邻接矩阵,深度优先遍历和广度优先遍历的递归与非递归算法

/*(1)输入一组顶点,建立无向图的邻接矩阵。 进行DFS(深度优先遍历)和BFS(广度优先遍历)。 写出深度优先遍历的递归和非递归算法。*/ #include #define max 40 //最...
  • CSDN_buyi
  • CSDN_buyi
  • 2017年11月13日 21:33
  • 477

无向图的邻接矩阵 -- DFS - 深度优先遍历

无向图的邻接矩阵 -- DFS - 深度优先遍历 逝去的日子: 2012/11/01 回想当年在学校学数据结构时,很多算法都没有搞得太明白,可能那时太不用心了,也可能是自己理解...
  • jhting
  • jhting
  • 2012年11月01日 17:05
  • 1749

无向图的邻接矩阵表示和遍历

#include #include #include using namespace std; typedef char vertexType; //顶点的数据类型...
  • wwj_ff
  • wwj_ff
  • 2015年06月12日 15:08
  • 1779

无向图的邻接矩阵和邻接表实现各种操作 -- C++语言描述

一:实现代码 #ifndef _GRAPH_H #define _GRAPH_H #include #include using namespace::std; /////////////...
  • FreeeLinux
  • FreeeLinux
  • 2016年08月16日 19:00
  • 2734

(编程训练)再回首,数据结构——无向图的邻接矩阵表示、DFS、BFS

最近在复习数据结构,顺便看看大一的时候写的代码,看完之后比当初有了更加深刻的体会。        希望这些能提供给初学者一些参考。         在VC++6.0下可运行,当初还写了不少注释。  ...
  • u011694809
  • u011694809
  • 2015年05月28日 12:37
  • 616

【数据结构类】无向图的邻接矩阵表示法

采用邻接矩阵表示无向图,完成图的创建、图的深度优先遍历、图的广度优先遍历操作。其中图的顶点信息是字符型,图中顶点序号按字符顺序排列。排列。代码如下:  }#include     002.using ...
  • Patricia_Z
  • Patricia_Z
  • 2011年03月27日 17:05
  • 389
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:无向图的邻接矩阵
举报原因:
原因补充:

(最多只允许输入30个字)