修改数据结构图的算法!!!紧急求助2

来源:百度知道 编辑:UC知道 时间:2024/04/28 04:58:22
typedef char DataType;
#define MaxVertices 10
typedef struct ArcNode{
int adjvex;
int power;
struct ArcNode *nextarc;
int *info;
}ArcNode;
typedef struct VexNode{
int data;
ArcNode *firstarc;
}VexNode,AdjList;
typedef struct{
AdjList vertexs;
int vexnum,arcnum;
}ALGraph;

void CreatGraph (AdjList g)
//建立有n个顶点和m 条边的无向图的邻接表存储结构
{int i,j,n,m,p,k;
char v1,v2;
scanf("%d%d",&n,&m);
for (i =1,i<=n;i++)//输入顶点信息,建立顶点向量
{scanf(&g[i].vertex); g[i].firstarc=null;}

for (k=1;k<=m;k++)//输入边信息

{scanf(&v1,&v2);//输入两个顶点

i=GraphLocateVertex (g,v1); j=GraphLocateVertex (g,v2); //顶点定位

p=(ArcNode *)malloc(sizeof(ArcNode));//申请边结点

p->adjvex=j; p->next=g[i].firstarc; g[i].firstarc=p;//将边结点链入

p=(ArcNode *)malloc(sizeof(ArcNode));

p->adjvex=i; p->next=g[j].firstarc; g[j].frstarc=p;

typedef char DataType;

#define MaxVertices 10

typedef struct tagArcNode
{
int adjvex;
int power;
struct tagArcNode *nextarc;
int *info;
}ArcNode;

typedef struct tagVexNode
{
int data;
ArcNode *firstarc;
}VexNode, *AdjList;

typedef struct
{
AdjList vertexs;
int vexnum,arcnum;
}ALGraph;

int GraphLocateVertex(AdjList g, char v)
{
int nRtn = 0;
//功能未知 - -!!!
//请自己添加
return nRtn;
}
void CreatGraph (AdjList *g) //因为你要修改g这个指针参数,只能用双指针
{//建立有n个顶点和m 条边的无向图的邻接表存储结构
int i, j, n, m, k;
char v1,v2;
ArcNode *p;
scanf("%d%d", n, m);
for (i = 1; i<= n; i++)//输入顶点信息,建立顶点向量
{
scanf("%d", (*g[i]).data);
(*g[i]).firstarc = NULL;
}
for (k = 1;k <= m; k++)//输入边信息
{
scanf("%d%d", v1, v2);//输入两个顶点