imafoool 2017-03-08 08:03 采纳率: 25%
浏览 2095
已结题

关于邻接表的建立与输出

 #include<stdio.h>
#include<malloc.h>

#define max 10000
int edge[1000000][2]={0};
typedef struct _enode
{
    //int dis; 
    int vex;
    struct _enode* nextedge;
}enode;

typedef struct _vnode
{
    int vex;
    enode* firstedge;
}vnode;

typedef struct _pic
{
    int vex_num;
    int edge_num;
    vnode node[max];
}pic;



void find_insert(enode* edge,enode* temp)
{
    enode* p;
    p=edge;
    while(p->nextedge!=NULL)
        p=p->nextedge;
    p->nextedge=temp;
}

pic* create_pic()
{
    int i=0,c1,c2;
    enode* node_temp;
    pic* picture;
    picture=(pic*)malloc(sizeof(pic));
    picture->edge_num=5;
    picture->vex_num=3;

    for(i=1;i<=picture->vex_num;i++)   //you are sb。I just say to you 
    {
        picture->node[i].vex=i;
        picture->node[i].firstedge=NULL;
        c1=edge[i][0];
        c2=edge[i][1];
        node_temp=(enode*)malloc(sizeof(struct _enode));
        node_temp->vex=c2;

        if(picture->node[c1].firstedge==NULL)
        {
            picture->node[c1].firstedge=node_temp;
        }
        else
        {
            find_insert(picture->node[c1].firstedge,node_temp);
        }
    }

    return picture; 
}

int main(void)
{
    int i=0;
    pic* picture;
    for(i=1;i<=5;i++)
    {
        scanf("%d",&edge[i][0]);
        scanf("%d",&edge[i][1]);
    }
    picture=create_pic();

    for(i=1;i<=picture->vex_num;i++)
    {
        enode* p;
        p=(enode*)malloc(sizeof(enode));
        if(picture->node[i].firstedge==NULL)
            printf("error");
        else
        {
            p=picture->node[i].firstedge;
            printf("%d ",picture->node[i].vex);
            while(p!=NULL)
            {
                printf("%d ",p->vex);
                p=p->nextedge;
            }   
        }
        printf("\n");
    }

}

一个邻接表的建立与输出的程序,求大神看看为啥输入5个边的信息没有反应
图片说明

  • 写回答

3条回答 默认 最新

  • threenewbee 2017-03-08 08:12
    关注

    调试下,picture->vex_num,是多少,是不是循环没有执行或死循环。

    评论

报告相同问题?

悬赏问题

  • ¥100 求汇川机器人IRCB300控制器和示教器同版本升级固件文件升级包
  • ¥15 用visualstudio2022创建vue项目后无法启动
  • ¥15 x趋于0时tanx-sinx极限可以拆开算吗
  • ¥500 把面具戴到人脸上,请大家贡献智慧
  • ¥15 任意一个散点图自己下载其js脚本文件并做成独立的案例页面,不要作在线的,要离线状态。
  • ¥15 各位 帮我看看如何写代码,打出来的图形要和如下图呈现的一样,急
  • ¥30 c#打开word开启修订并实时显示批注
  • ¥15 如何解决ldsc的这条报错/index error
  • ¥15 VS2022+WDK驱动开发环境
  • ¥30 关于#java#的问题,请各位专家解答!