有向图的创建(邻接矩阵)
来源:互联网 发布:扫码查真伪的软件 编辑:程序博客网 时间:2024/05/22 02:45
// 图.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include"malloc.h"
#define MAX_VERTEX_NUM 20
#define ERROR -1
#define OK 1
typedef int VertexType ;
typedef int InfoType;
typedef int Status;
typedef struct ArcNode{
int adjvex;
struct ArcNode *nextarc;
InfoType *info;
}ArcNode;
typedef struct VNode{
VertexType data;
ArcNode *finrstarc;
}VNode,AdjList[MAX_VERTEX_NUM];
typedef struct{
AdjList vertices;
int vexnum,arcnum;
int kind;
}ALGraph;
ALGraph G;
Status LocateVex(ALGraph G,int v){
for(int i=0;i<G.vexnum;i++)
{
if(G.vertices[i].data==v)
return i;
}
return ERROR;
}
Status CreateDG(ALGraph &G){
scanf("%d",&G.vexnum);
scanf("%d",&G.arcnum);
for(int i=0;i<G.vexnum;i++) scanf("%d",&G.vertices[i].data);
for(int i=0;i<G.vexnum;i++) G.vertices[i].finrstarc=NULL;
for(int k=0;k<G.arcnum;k++){
int i,j,v1,v2;
scanf("%d%d",&v1,&v2);
i=LocateVex(G,v1);
printf("%d",i);
j=LocateVex(G,v2);
ArcNode *p=(ArcNode *)malloc(sizeof(ArcNode));
ArcNode *q=(ArcNode *)malloc(sizeof(ArcNode));
if(!G.vertices[i].finrstarc)
G.vertices[i].finrstarc=p;
else{
for(q=G.vertices[i].finrstarc;q->nextarc;q=q->nextarc)
q->nextarc=p;
}
p->adjvex=j;
p->nextarc=NULL;
}
printf("%d %d",G.vexnum,G.arcnum);
return OK;
}
int _tmain(int argc, _TCHAR* argv[])
{
CreateDG(G);
printf("%d %d",G.vexnum,G.arcnum);
ArcNode *q;
for(int i=0;i<G.vexnum;i++)
{
for(q=G.vertices[i].finrstarc;q->nextarc;q=q->nextarc)
{
printf("%d ",q->adjvex);
}
printf("\n");
}
return 0;
}
//
#include "stdafx.h"
#include"malloc.h"
#define MAX_VERTEX_NUM 20
#define ERROR -1
#define OK 1
typedef int VertexType ;
typedef int InfoType;
typedef int Status;
typedef struct ArcNode{
int adjvex;
struct ArcNode *nextarc;
InfoType *info;
}ArcNode;
typedef struct VNode{
VertexType data;
ArcNode *finrstarc;
}VNode,AdjList[MAX_VERTEX_NUM];
typedef struct{
AdjList vertices;
int vexnum,arcnum;
int kind;
}ALGraph;
ALGraph G;
Status LocateVex(ALGraph G,int v){
for(int i=0;i<G.vexnum;i++)
{
if(G.vertices[i].data==v)
return i;
}
return ERROR;
}
Status CreateDG(ALGraph &G){
scanf("%d",&G.vexnum);
scanf("%d",&G.arcnum);
for(int i=0;i<G.vexnum;i++) scanf("%d",&G.vertices[i].data);
for(int i=0;i<G.vexnum;i++) G.vertices[i].finrstarc=NULL;
for(int k=0;k<G.arcnum;k++){
int i,j,v1,v2;
scanf("%d%d",&v1,&v2);
i=LocateVex(G,v1);
printf("%d",i);
j=LocateVex(G,v2);
ArcNode *p=(ArcNode *)malloc(sizeof(ArcNode));
ArcNode *q=(ArcNode *)malloc(sizeof(ArcNode));
if(!G.vertices[i].finrstarc)
G.vertices[i].finrstarc=p;
else{
for(q=G.vertices[i].finrstarc;q->nextarc;q=q->nextarc)
q->nextarc=p;
}
p->adjvex=j;
p->nextarc=NULL;
}
printf("%d %d",G.vexnum,G.arcnum);
return OK;
}
int _tmain(int argc, _TCHAR* argv[])
{
CreateDG(G);
printf("%d %d",G.vexnum,G.arcnum);
ArcNode *q;
for(int i=0;i<G.vexnum;i++)
{
for(q=G.vertices[i].finrstarc;q->nextarc;q=q->nextarc)
{
printf("%d ",q->adjvex);
}
printf("\n");
}
return 0;
}
阅读全文
0 0
- 有向图的创建(邻接矩阵)
- 有向图的邻接矩阵
- 有向图的邻接矩阵表示法(创建,DFS,BFS)
- 邻接矩阵有向图
- 邻接矩阵--有向图
- 有向图的邻接矩阵的计算
- 有向图的DFS和BFS(邻接矩阵实现)
- 有向图的邻接矩阵类
- 有向图的邻接矩阵存储
- 邻接矩阵实现的有向图
- 邻接矩阵实现无向图的创建
- 无向图的邻接矩阵创建表示
- 邻接矩阵(有向图,无向图实现的差异)
- 有向图邻接矩阵实现
- 邻接矩阵存储有向图
- 邻接矩阵存储有向图
- 邻接矩阵、构造有向图
- 有向图的邻接矩阵的平方运算的含义
- Android零基础入门第10节:开发IDE大升级,终于迎来了Android Studio
- Android6.0权限动态分配
- selenium 定位不到元素
- JS 中字符和 ASCII码转换函数
- 记录开发中遇到的问题
- 有向图的创建(邻接矩阵)
- CloudForms automation导出导入脚本文件【给虚拟机添加属性attribute,模板ID-templateGuid】
- 28PA51G 直流减速电机自带编码器
- C++的易混概念
- 编写一个可配置的网页信息提取组件
- 10个JavaScript难点
- 如何将项目管理从禅道迁移到华为软件开发云
- 多线程编程之一——问题提出
- 使用命令行javac命令出现编码GBK的不可映射字符