鱼C论坛

 找回密码
 立即注册
查看: 2946|回复: 0

[技术交流] 刚看完小甲鱼的用邻接表存图,找不到代码,不知道自己写的对不对,求大神

[复制链接]
发表于 2015-4-1 16:09:44 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

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:新学的小菜鸟,随便教训,随便提议,只求不喷



想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-25 05:21

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表