回 帖 发 新 帖 刷新版面

主题:大虾们一定要救救我

//邻接表的建立

#include<stdio.h>
#define maxv 7
#define maxe 42
typedef struct node
{
    int a;    //端点序号
    int w;    //权值
    struct node *next;
}link;
typedef struct head
{
    int first;
    struct node *next;
}flink;


void Creat_4(flink* GV[],int v,int e)
//建立 无向有权 图,顶点数组GV和邻接表GL
{
    int i,j,k,t;
    link *p;
    for(i=1;i<=v;i++)             //表头指针初始化,即各个顶点为空
    {
        GV[i]->first=i;
        GV[i]->next=NULL;
    }
    printf("请输入 %d 条无向有权边!\n",e);
    for(k=1;k<=e;k++)
    {
        printf("请输入第 %d 条无向有权边的始点i,终点j,权值t: ",k);
        scanf("%d %d %d",&i,&j,&t);
        p=new link;
        p->a=j;
        p->w=t;
        p->next=GV[i]->next;
        GV[i]->next=p;

        p=new link;  //因为这是无向图,可以利用无向图的对称性
        p->a=i;
        p->w=t;
        p->next=GV[j]->next;
        GV[j]->next=p;
    }
}


void main()
{
    int v,e,i,k;
    flink* GV[maxv];
    printf("请输入 无向有权 图的顶点个数和边数(v e): ");
    scanf("%d %d",&v,&e);
    Creat_4(GV,v,e);
}

回复列表 (共4个回复)

沙发

什么问题,是不能运行吗?

板凳

p=new link;
这里不对,你没有给结构体分配空间,而且new也没有定义过

3 楼


是啊,不能建立[em10]

4 楼


我的new的用了C++里面的

我来回复

您尚未登录,请登录后再回复。点此登录或注册