#include <stdio.h>
#include "graph.h" //请勿删除,否则检查不通过
bool insert_vertex(ListGraph* G, VertexType v)
{
if(locate_vertex(G,v)!=-1||G->vexnum+1>=MAX_VERTEX_NUM)
return false;
G->vertex[G->vexnum].data=v;
G->vertex[G->vexnum].firstarc=NULL;
G->vexnum++;
return true;
}
bool insert_arc(ListGraph* G, VertexType v, VertexType w)
{
if(locate_vertex(G,v)==-1||locate_vertex(G,w)==-1||G->arcnum>=MAX_VERTEX_NUM)
return false;
for(ArcNode *p=G->vertex[locate_vertex(G,v)].firstarc;p!=NULL;p=p->nextarc){
if(p->adjvex==locate_vertex(G,w))
return false;
}
ArcNode *p=G->vertex[locate_vertex(G,v)].firstarc;
ArcNode *np=(ArcNode *)malloc(sizeof(ArcNode));
np->adjvex=locate_vertex(G,w);
np->nextarc=NULL;
G->arcnum++;
if(!p)
G->vertex[locate_vertex(G,v)].firstarc=np;
else{
np->nextarc=p->nextarc;
p->nextarc=np;
}
return true;
}