zoukankan      html  css  js  c++  java
  • 图的邻接表存储

    邻接表是图的一种链式存储结构。

    在邻接表中,对图中的每一个定点建立一个单链表,第i个单链表中的结点表示依附于定点vi的边。

    每一个结点由三个域构成,表节点,头结点,还有存储图的。

    假设像构建下图的一个图的结构


    那么程序例如以下:

    #include<stdio.h>
    #include<stdlib.h>
    #define  MAXNUM 100
    typedef struct node   //边表节点
    {
       int adjvex;
       struct node* next;
    }EdgeNode;
    
    typedef struct     //顶点表节点
    {
       char vertex;
       EdgeNode* firstedge;
    }VertexNode;
    
    typedef struct
    {
        VertexNode adjlist[MAXNUM];
        int n,e;
    
    }ALGraph;
    void create(ALGraph* G)
    {
        int i,j,k,w,v;
        EdgeNode *s;
        printf("读入顶点数和边数");
        scanf("%d,%d",&G->n,&G->e);
    
    
       for (i=0;i<G->n;i++)
       {
           fflush(stdin);
           printf("建立顶点表");
           G->adjlist[i].vertex=getchar();
           G->adjlist[i].firstedge=NULL;
       }
       printf("建立边表
    ");
       for (k=0;k<G->e;k++)
       {
           printf("读入(vi-vj)的顶点对序号");
           scanf("%d,%d",&i,&j);
           s=(EdgeNode*)malloc(sizeof(EdgeNode));
           s->adjvex=j;
           s->next=G->adjlist[i].firstedge;  //插入表头
           G->adjlist[i].firstedge=s;
           s=(EdgeNode*)malloc(sizeof(EdgeNode));
           s->adjvex=i;
           s->next=G->adjlist[j].firstedge;
           G->adjlist[j].firstedge=s;
    
       }
    }
    int main()
    {
        int i;
        ALGraph* G= (ALGraph*)malloc(sizeof(ALGraph));
        create(G);
        for (i=0;i< G->n;i++)
        {
           printf("%d->",i);
           while(G->adjlist[i].firstedge!=NULL)
           {
                printf("%d->",G->adjlist[i].firstedge->adjvex);
                G->adjlist[i].firstedge=G->adjlist[i].firstedge->next;
    
           }
           printf("
    ");
        }
    }
    


  • 相关阅读:
    [SUCTF 2019]Game
    [RoarCTF2019]黄金6年
    espcms代码审计第一弹
    初识搜索
    安恒2018年三月月赛MISC蜘蛛侠呀
    [De1CTF 2019]SSRF Me
    网鼎杯 fakebook
    [0CTF 2016]piapiapia
    [RoarCTF 2019]Easy Java
    [CISCN2019 华北赛区 Day1 Web1]Dropbox
  • 原文地址:https://www.cnblogs.com/llguanli/p/8717082.html
Copyright © 2011-2022 走看看