Serien Chen 2023-05-12 11:46 采纳率: 0%
浏览 38

为什么运行后只有(1)有结果啊


#include<stdio.h>
#include<malloc.h>
#define INF 32767
#define MAXV 100
typedef char InfoType;
typedef struct
{
    int no;
    InfoType info;
}VertexType;
typedef struct
{
    int edges[MAXV][MAXV];
    int n,e;
    VertexType vexs[MAXV];
}MatGraph;

typedef struct ANode
{
    int adjvex;
    struct ANode * nextarc;
    int weight;
}ArcNode;
typedef struct Vnode
{
    InfoType info;
    int count;
    ArcNode * firstarc;
}VNode;
typedef struct
{
    VNode adjlist[MAXV];
    int n,e;
}AdjGraph;
//----邻接矩阵的基本运算算法-----------------------
void CreateMat(MatGraph &g,int A[MAXV][MAXV],int n,int e)
{
    int i,j;
    g.n=n;g.e=e;
    for(i=0;i<g.n;i++)
        for(j=0;j<g.n;j++)
            g.edges[i][j]=A[i][j];
}
void DispMat(MatGraph g)
{
    int i,j;
    for(i=0;i<g.n;i++)
    {
        for(j=0;j<g.n;j++)
            if(g.edges[i][j]!=INF)
                printf("%4d",g.edges[i][j]);
            else
                printf("%4s","∞");
            printf("\n");
    }
}
//----邻接表的基本运算算法-----------------------
void CreateAdj(AdjGraph * &G,int A[MAXV][MAXV],int n,int e)
{
    int i,j;
    ArcNode * p;
    G=(AdjGraph * )malloc(sizeof(AdjGraph));
    for(i=0;i<n;i++)
        G->adjlist[i].firstarc=NULL;
    for(i=0;i<n;j++)
        for(j=n=1;j>=0;j--)
            if(A[i][j]!=0 && A[i][j]!=INF)
            {
                p=(ArcNode * )malloc(sizeof(ArcNode));
                p->adjvex=j;
                p->weight=A[i][j];
                p->nextarc=G->adjlist[i].firstarc;
                G->adjlist[i].firstarc=p;
            }
    G->n=n;G->e=n;
}
void DispAdj(AdjGraph * G)
{
    ArcNode * p;
    for(int i=0;i<G->n;i++)
    {
        p=G->adjlist[i].firstarc;
        printf(" % 3d: ",i);
        while (p!=NULL)
        {
            printf(" % 3d[ % d]→",p->adjvex,p->weight);
            p=p->nextarc;
        }
        printf("∧\n");
    }
}
void DestroyAdj(AdjGraph * &G)
{
    ArcNode * pre, * p;
    for(int i=0;i<G->n;i++)
    {
        pre=G->adjlist[i].firstarc;
        if(pre!=NULL)
        {
            p=pre->nextarc;
            while(p!=NULL)
            {
                free(pre);
                pre=p;p=p->nextarc;
            }
            free(pre);
        }
    }
    free(G);
}




//#include"graph.cpp"
int main()
{
    MatGraph g;
    AdjGraph * G;
    int A[MAXV][MAXV]={
        {0,5,INF,7,INF,INF},    {INF,0,4,INF,INF,INF},
        {8,INF,0,INF,INF,9},     {INF,INF,5,0,INF,6},
        {INF,INF,INF,5,0,INF},     {3,INF,INF,INF,1,0}};
        int n=6,e=10;
        CreateMat(g,A,n,e);
        printf("(1)图G的邻接矩阵:\n");
        DispMat(g);
        CreateAdj(G,A,n,e);
        printf("(2)图G的邻接表:\n"); DispAdj(G);
        printf("(3)销毁图G的邻接表\n");
        DestroyAdj(G);
        return 1;
}
  • 写回答

2条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-05-12 14:15
    关注
    • 帮你找了个相似的问题, 你可以看下: https://ask.csdn.net/questions/7518027
    • 这篇博客也不错, 你可以看下【有重复数据】
    • 除此之外, 这篇博客: 1.1什么是数据结构?中的 有关 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
    • 对存储在计算机中的数据,最基本的操作有:插入删除查找

      这就好比图书馆对书的管理,我们会面临的问题有:

      1. 新书怎么插入?
      2. 怎样找到某本指定的书?
      3. 如何对图书进行分类?如何分配各个不同类别的图书的存放空间?类别应该分多细?

      由此类比计算机对数据进行处理,不难理解计算机解决问题的效率,与数据的组织方式密切相关。

       

    评论

报告相同问题?

问题事件

  • 创建了问题 5月12日

悬赏问题

  • ¥20 Keil uVision5创建project没反应
  • ¥15 mmseqs内存报错
  • ¥15 vika文档如何与obsidian同步
  • ¥15 华为手机相册里面的照片能够替换成自己想要的照片吗?
  • ¥15 陆空双模式无人机飞控设置
  • ¥15 sentaurus lithography
  • ¥100 求抖音ck号 或者提ck教程
  • ¥15 关于#linux#的问题:子进程1等待子进程A、B退出后退出(语言-c语言)
  • ¥20 web页面如何打开Outlook 365的全球离线通讯簿功能
  • ¥15 io.jsonwebtoken.security.Keys