#include<iostream>
#define N 20;
using namespace std;
typedef struct ANode {
int AdjV; //邻接点在顺序表中的位置
int Wn; //权值(用于网,图可省略)
struct ANode *next; //指向下1个邻接点
} *AdjLink; //邻接点存储结构
typedef struct {
int data;//顶点数据元素
AdjLink HAdjV; //邻接点链表头指针
} VNode; //顶点存储结构
//VNode AdjL[VertexNum]; //图的存储结构
//int Vn,En; //顶点数,边数或狐数
class MapList
{
VNode Nodes[N]; //就是这行一直出错
int Vn,En;
public:
MapList()
{
for(int i=0;i<N;i++)
Nodes[i]->AdiLink=NULL;
Vn=En=0;
}
//初始化图的邻接表存储结构:
void GraphAdjLInit()
{
int d;
cout<<"请依次输入个顶点元素,以-1结束:"<<endl;
cin>>d;
int i=0;
while(d!=-1)
{
Nodes[i].data=d;
Nodes[i].HAdjV=NULL;
Vn++;
cin>>d;
}
}
//建立图的邻接表存储结构:
void GraphAdjCreate( )
{
int vi,v2,w0;
cout<<"请依次输入每条边的起点、终点、权值,以起点=终点结束(无向图的同一条边变换起点和终点输,每条边输两次):"<<endl;
while(En<Vn*(Vn-1))
{
cin>>v1>>v2>>w0;
if (v1=v2 || v1<0 || v2<0) break;
++En; // 输入的边或弧计数
AdjLink p=(AdjLink) malloc(sizeof(AdjLink));
p->AdjV=v2;
p->Wn=w0;
p->next=NULL;
if (!Nodes[v1].HAdjV) //链入头指针
Nodes[v1].HAdjV=p;
else //找到邻接链表尾并链入p
{
AdjLink q=Nodes[v1].HAdjV;
while (q->next) q=q->next;
q->next=p;
} //else
} //while
} //GraphAdjCreate 算法结束
//输出图的邻接表存储结构:
void GraphAdjLPrint( )
{
for (int k=0;k<Vn;k++)
{
cout<<Nodes[k].data<<"→";
AdjLink p=Nodes[k].HAdjV;
while(p)
{
cout<<p->Adjv<<","<<p->Wn<<" ";
p=p->next;
}
cout<<endl;
}
} //GraphAdjLPrint 算法结束
int Idegree(int i) //计算某个点的入度
{
int id=0;
for(int j=0;j<Vn;j++)
{
AdjLink p=Nodes[i].HAdjv;
while(p)
{
if(p->Adjv==i) id++;
p=p->next;
}
}
return id;
}
int Odegree(int i) //计算某个点的出度
{
int od=0;
AdjLink p=Nodes[i].HAdjv;
while(p)
{
od++;
p=p->next;
}
return od;
}
}; // GraphAdjLInit 算法结束
下面的错误提示:
g:\数据结构\实验2\第五题\maplist.h(24) : error C2143: syntax error : missing ']' before ';'
g:\数据结构\实验2\第五题\maplist.h(24) : error C2059: syntax error : ']'
g:\数据结构\实验2\第五题\maplist.h(24) : error C2238: unexpected token(s) preceding ';'
为什么就是通不过呢??明明没问题的啊