邻接表的结构为 结构体链表数组,b[i]后面所连节点表示与点i相连的点
#include<iostream>
using namespace std;
typedef struct D
{
int data;
struct D *next;
}dian;
void insert(dian d[],int i,int j )
{
dian *p=&d[i];
while(p->next !=NULL) //注意此处不能写为p!=NULL,因为当p为NULL时,已经不指向上一个节点的next
{
p=p->next ;
}
dian *q=new dian;
q->data =j;
q->next =NULL;
p->next =q;
}
int main()
{
int n;
cin>>n;
int g[n][n];
for(int i=0;i<n;i++)
for(int j=0;j<n;j++)
cin>>g[i][j];
dian d[n];
for(int i=0;i<n;i++)
d[i].next =NULL;
for(int i=0;i<n;i++)
{
for(int j=0;j<n;j++)
{
if(g[i][j]==1)
insert(d,i,j);
}
}
for(int i=0;i<n;i++)
{
dian *p=&d[i];
p=p->next ;
while(p!=NULL)
{
cout<<p->data ;
p=p->next ;
}
cout<<endl;
}
return 0;
}