刚看完小甲鱼的用邻接表存图,找不到代码,不知道自己写的对不对,求大神
#include<stdio.h>#include<stdlib.h>
#define maxsize 100
typedef struct node{ //定义一个结构体顶点 node
char data;//存放数据
struct node *next;//存放链表
}node,*Node;
int main(){
node v;
int count=0,j,i;
char c;
Node p,q;
printf("input the node ! end with '#'\n");
while(scanf("%c",&c)&&'#'!=c){//对结构体数组初始化data 以‘#’结束
v.data=c;
count++;
}
int map;
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);
for(i=0;i<count;i++){
q=&v; //让q依次指向每个顶点
for(j=0;j<count;j++){
if(1==map){
p=(Node)malloc(sizeof(node));//如果有邻接顶点,动态开辟一个链表存放
p->data=v.data; //存放邻接顶点数据
p->next=NULL;
q->next=p;//等待存放下一个邻接顶点
q=p;
}
}
}
for(i=0;i<count;i++){
p=&v; //从每个顶点开始
printf("the %d line list is\n",i+1);
while(p){
printf("%c ",p->data);// 依次输出他的邻接链表
p=p->next;
}
printf("\n");
}
}
//ps:新学的小菜鸟,随便教训,随便提议,只求不喷
页:
[1]