|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
#include<stdio.h>
#include<stdlib.h>
#define maxsize 100
typedef struct node{ //定义一个结构体顶点 node
char data; //存放数据
struct node *next;//存放链表
}node,*Node;
int main(){
node v[maxsize];
int count=0,j,i;
char c;
Node p,q;
printf("input the node ! end with '#'\n");
while(scanf("%c",&c)&&'#'!=c){ //对结构体数组初始化data 以‘#’结束
v[count].data=c;
count++;
}
int map[maxsize][maxsize];
FILE *fp; //从一个abc.txt文本里面读取地图 (0,1)
fp=fopen("abc.txt","r");
for(i=0;i<count;i++)
for(j=0;j<count;j++)
fscanf(fp,"%d",&map[i][j]);
for(i=0;i<count;i++){
q=&v[i]; //让q依次指向每个顶点
for(j=0;j<count;j++){
if(1==map[i][j]){
p=(Node)malloc(sizeof(node));//如果有邻接顶点,动态开辟一个链表存放
p->data=v[j].data; //存放邻接顶点数据
p->next=NULL;
q->next=p;//等待存放下一个邻接顶点
q=p;
}
}
}
for(i=0;i<count;i++){
p=&v[i]; //从每个顶点开始
printf("the %d line list is\n",i+1);
while(p){
printf("%c ",p->data);// 依次输出他的邻接链表
p=p->next;
}
printf("\n");
}
}
//ps:新学的小菜鸟,随便教训,随便提议,只求不喷
|
|