邻接矩阵->邻接表(算法)

本文介绍了一种将邻接矩阵转换为邻接表的数据结构转换算法,并提供了详细的实现步骤与示例代码。适用于图论学习者及数据结构初学者。

数据结构与算法


邻接矩阵邻接表(算法)

                        ----------------------个人作业,如果有后辈的作业习题一致,可以参考学习,一起交流,请勿直接copy
struct
point{ int date; struct point *next; };//定义结点的结构 void matrix_to_list(int size)//转换函数主体,size为该矩阵的大小 { struct point *p, *q, arr[]; int e[][];//邻接矩阵 for (int i = 0; i<size; i++) { arr[i].next = NULL; for (int j = 0; j<size; j++) { cin >> e[i][j];//双层循环输入邻接矩阵 p = (struct point *)malloc(sizeof(struct point));//初始化 p->date = j; p->next = NULL; if (e[i][j] == 1) { if (arr[i].next == NULL) arr[i].next = p; else q->next = p; q = p; }//结点存在道路,则保存入邻接表 } }//转换的过程 for (int i = 0; i<total; i++) { p = arr[i].next; while (p != NULL) { cout << p->date; p = p->next; } cout << endl; } }//输出每个结点的邻接表

 

转载于:https://www.cnblogs.com/nanashi/p/6685895.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值