• 邻接矩阵转十字邻接表


    #include "stdafx.h"
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    typedef struct node
    {
        int headvex;
        int tailvex;
        node* headlink;
        node* taillink;
    }arcnode,*parc;
    typedef struct
    {
        int vertex;
        arcnode *firstin;
        arcnode *firstout;
    }vnode,*pvnode;
    
    int main()
    {
        int a[4][4]={{0,0,0,1},{1,0,1,0},{1,1,0,0},{0,0,0,0}};
        parc p[4][4];
        pvnode pv[4];
        for(int i=0;i<4;i++)
            for(int j=0;j<4;j++)
                if(a[i][j]>0)
                    {
                        p[i][j]=(parc)malloc(sizeof(arcnode));
                        memset(p[i][j],0,sizeof(arcnode));
                        p[i][j]->headvex=j;
                        p[i][j]->tailvex=i;
                    }
        for(int i=0;i<4;i++)
            for(int j=0;j<4;j++)
                if(a[i][j]>0)
                {
                    for(int k=j+1;k<4;k++)
                    {
                        if(a[i][k]>0)p[i][j]->taillink=p[i][k];
                    }
                    for(int k=i+1;k<4;k++)
                    {
                        if(a[k][j]>0)p[i][j]->headlink=p[k][j];
                    }
                }
        for(int i=0;i<4;i++)
        {
            pv[i]=(pvnode)malloc(sizeof(vnode));
            pv[i]->vertex=i;
            for(int j=0;j<4;j++)
            {
                if(a[j][i]>0)
                {
                    pv[i]->firstin=p[j][i];
                    break;
                }
            }
            for(int j=0;j<4;j++)
            {
                if(a[i][j]>0)
                {
                    pv[i]->firstin=p[i][j];
                    break;
                }
            }
        }
        printf("%d",pv[0]->firstin->headvex);
        system("pause");
        return 0;
    }
    相信世界是平的
    谨记四个字“修身养性”
    大江东去浪淘尽英雄,再牛B的人物最后也是一掊土
    向善不是目的,而是抚慰心灵,更多的感受幸福,感谢别人给你行善的机会
    相信老子的话:万物生于有,有生于无,一切的道理都源于一个无法证明的假设
    我是好是坏就自然而然的摆在那里,并不会因为别人的评价而改变什么,我也不需要别人用一张纸来说明我什么,世间最难得的是自由



    支持大额赞助:
  • 相关阅读:
    一周学C#第五天——命名空间
    一周学C#之第4天——语句
    一周学C#之第一天——基础知识
    数据库ADONET使用强类型DataSet
    .NET中的主要类型简表
    一周学C#第六天——枚举
    一周学C#之第二天(函数)
    一周学C#之第三天——值的类型
    数据库ADONET向数据库提交更新
    一个低级错误导致的StackOverflowException异常
  • 原文地址:https://www.cnblogs.com/sky-view/p/3268899.html
Copyright © 2020-2023  润新知