用邻接矩阵创建有向图(第一次发帖,求助)
// GraphExample.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include <stdio.h>
#include<stdlib.h>
#include <iostream>
using namespace std;
#define MAX_VERTEX_NUM 10
#define INFINITY 32678
#define Error -1
#define Ok 1
typedef int AdjType ;
typedef int OtherInfo;
typedef enum{DG,DN,UNG,UDN} GraphKind;
typedef char VertexData;
typedef struct ArcNode{
AdjType adj;
OtherInfo info;
}ArcNode;
typedef struct
{
VertexData vexs[MAX_VERTEX_NUM];
ArcNode arcs[MAX_VERTEX_NUM][MAX_VERTEX_NUM];
int vexnum,arcnum;
GraphKind kind;
}AdjMatrix;
int LocateVertex( AdjMatrix *G,VertexData v)
{
int k,j=Error;
for(k=0;k<G->vexnum;k++)
if(G->vexs [k]==v)
{j=k;break;}
return(j);
}
int CreateDN(AdjMatrix *G)
{
Ok;
int i,j,k,weight;VertexData v1,v2;
cin>> G->arcnum>>G->vexnum;
for(i=0;i<G->vexnum;i++)
{
for(j=0;j<G->vexnum;j++)
G->arcs[i][j].adj=INFINITY;
}
for(i=0;i<G->vexnum;i++)
{
cin>> G->vexs [i];
}
for(k=0;k<G->arcnum ;k++)
{
cin>>v1>>v2>>weight;
i=LocateVertex(G,v1);
j=LocateVertex(G,v2);
G->arcs [i][j].adj=weight;
}
return (Ok);
}
void printG(AdjMatrix *G)
{int i,j;
cout<<"图的各顶点是:"<<endl;
for(i=0;i<G->vexnum;i++)
cout<<G->vexs[i]<<" ";
cout<<endl;
cout<<"图的邻接矩阵是:"<<endl;
for(i=0;i<G->vexnum ;i++)
{for(j=0;j<G->vexnum ;j++)
cout<< G->arcs[i][j]<<" ";
cout<<endl;
}
}
int _tmain(int argc, _TCHAR* argv[])
{
AdjMatrix G;
CreateDN(&G);
printf(&G);
return( 0);
}
错误 1 error C2679: 二进制“<<”: 没有找到接受“ArcNode”类型的右操作数的运算符(或没有可接受的转换) c:\users\administrator\documents\visual studio 2008\projects\graphexample\graphexample\graphexample.cpp 77 GraphExample
错误 2 error C2664: “printf”: 不能将参数 1 从“AdjMatrix *”转换为“const char *” c:\users\administrator\documents\visual studio 2008\projects\graphexample\graphexample\graphexample.cpp 88 GraphExample
该如何改呢?
另外,我想用指针类型,代码如下
AdjMatrix *G;
G=(AdjMatrix *)malloc(sizeof(AdjMatrix));
也是报错:(暂时将)
错误 2 error C2065: “AdjMtrix”: 未声明的标识符 c:\users\administrator\documents\visual studio 2008\projects\graphexample\graphexample\graphexample.cpp 87 GraphExample
错误 3 error C2070: “'unknown-type'”: 非法的 sizeof 操作数 c:\users\administrator\documents\visual studio 2008\projects\graphexample\graphexample\graphexample.cpp 87 GraphExample