/*
* 3--------4--------5
* | | |
* | | |
* | | |
* 1--------2--------6
* \ /
* \ /
* \ /
* 0
*/
#include<bits/stdc++.h>
using namespace std;
int adjacency_matrix[][7]= {
{0,1,1,0,0,0,0},
{1,0,1,1,0,0,0},
{1,1,0,0,1,0,0},
{0,1,0,0,1,0,0},
{0,0,1,1,0,1,0},
{0,0,0,0,1,0,1},
{0,0,0,0,0,1,0}
};
typedef struct point{
int value;
point * next;
}List,*Link;
void matrix_to_list(int n){
Link adjacency_list[n]; //just a pointer,not node
int i,j;
for(i=0;i<n;i++){
adjacency_list[i] = NULL;
}
for(i=0;i<n;i++){
for(j=0;j<n;j++){
if(adjacency_matrix[i][j]==1){
Link p = new List;
p->next = adjacency_list[i];
p->value = j;
adjacency_list[i] = p;
}
}
}
Link p;
for(i=0;i<n;i++){
p = adjacency_list[i];
cout<<i;
while(p){
cout<<"--->"<<p->value;
p = p->next;
}
cout<<endl;
}
}
int main(){
matrix_to_list(7);
}
adjacency_matrix & adjacency_list
最新推荐文章于 2022-12-01 11:10:36 发布