|
|
|
#include <stdio.h>
|
|
|
|
#include <string.h>
|
|
|
|
#include <stdlib.h>
|
|
|
|
#define MAX 1000
|
|
|
|
typedef struct node {
|
|
|
|
char a[100];
|
|
|
|
struct node* next;
|
|
|
|
}edgenode;
|
|
|
|
typedef struct {
|
|
|
|
char name[100];
|
|
|
|
edgenode* firstnode;
|
|
|
|
}vexnode;
|
|
|
|
typedef struct {
|
|
|
|
vexnode adjust[7];
|
|
|
|
int e, n;
|
|
|
|
}list;
|
|
|
|
list nm;
|
|
|
|
|
|
|
|
char position[100]="address.txt";
|
|
|
|
|
|
|
|
typedef struct {
|
|
|
|
char s[100];
|
|
|
|
}filed;
|
|
|
|
filed fi[100];
|
|
|
|
void createfile(){
|
|
|
|
int i;
|
|
|
|
FILE* op;
|
|
|
|
op=fopen(position,"ab");
|
|
|
|
if(op==NULL){
|
|
|
|
printf("该文件未找到");
|
|
|
|
return ;
|
|
|
|
}
|
|
|
|
char strs[100];
|
|
|
|
for(i=0;i<7;i++){
|
|
|
|
printf("请输入:\n");
|
|
|
|
scanf("%s",strs);
|
|
|
|
fprintf(op,"%s\n",strs);
|
|
|
|
}
|
|
|
|
fclose(op);
|
|
|
|
}
|
|
|
|
void creatnode() {//对节点进行初始化
|
|
|
|
nm.e = 7;//边数
|
|
|
|
nm.n = 7;//站点数
|
|
|
|
FILE* op;
|
|
|
|
op=fopen(position,"rb");
|
|
|
|
if(op==NULL) {
|
|
|
|
printf("文件不存在");
|
|
|
|
}
|
|
|
|
int i=0;
|
|
|
|
while(1){
|
|
|
|
char strs[100];
|
|
|
|
if(fscanf(op,"%s",strs)!=EOF){
|
|
|
|
//printf("%s\n",strs);
|
|
|
|
strcpy(nm.adjust[i].name,strs);
|
|
|
|
i++;
|
|
|
|
}
|
|
|
|
else break;
|
|
|
|
}
|
|
|
|
fclose(op);
|
|
|
|
for (i = 0; i < nm.n; i++) {
|
|
|
|
nm.adjust[i].firstnode = NULL;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
void printff(){
|
|
|
|
for(int i=0;i<nm.n;i++){
|
|
|
|
printf("%s\n",nm.adjust[i].name);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
void createlist() {
|
|
|
|
struct node *p;
|
|
|
|
//下面是肇嘉浜路的邻接表
|
|
|
|
p = (edgenode*)malloc(sizeof(edgenode));
|
|
|
|
strcpy(p->a, "东安路");
|
|
|
|
p->next = nm.adjust[0].firstnode;
|
|
|
|
nm.adjust[0].firstnode = p;
|
|
|
|
p = (edgenode*)malloc(sizeof(edgenode));
|
|
|
|
strcpy(p->a, "嘉善路");
|
|
|
|
p->next = nm.adjust[0].firstnode;
|
|
|
|
nm.adjust[0].firstnode = p;
|
|
|
|
p = (edgenode*)malloc(sizeof(edgenode));
|
|
|
|
strcpy(p->a, "徐家汇");
|
|
|
|
p->next = nm.adjust[0].firstnode;
|
|
|
|
nm.adjust[0].firstnode = p;
|
|
|
|
//下面是东安路的邻接表
|
|
|
|
p = (edgenode*)malloc(sizeof(edgenode));
|
|
|
|
strcpy(p->a, "肇嘉浜路");
|
|
|
|
p->next = nm.adjust[1].firstnode;
|
|
|
|
nm.adjust[1].firstnode = p;
|
|
|
|
p = (edgenode*)malloc(sizeof(edgenode));
|
|
|
|
strcpy(p->a, "上海体育场");
|
|
|
|
p->next = nm.adjust[1].firstnode;
|
|
|
|
nm.adjust[1].firstnode = p;
|
|
|
|
p = (edgenode*)malloc(sizeof(edgenode));
|
|
|
|
strcpy(p->a, "大木桥路");
|
|
|
|
p->next = nm.adjust[1].firstnode;
|
|
|
|
nm.adjust[1].firstnode = p;
|
|
|
|
//下面是上海体育场的邻接表
|
|
|
|
p = (edgenode*)malloc(sizeof(edgenode));
|
|
|
|
strcpy(p->a, "东安路");
|
|
|
|
p->next = nm.adjust[2].firstnode;
|
|
|
|
nm.adjust[2].firstnode = p;
|
|
|
|
p = (edgenode*)malloc(sizeof(edgenode));
|
|
|
|
strcpy(p->a, "上海体育馆");
|
|
|
|
p->next = nm.adjust[2].firstnode;
|
|
|
|
nm.adjust[2].firstnode = p;
|
|
|
|
//下面是嘉善路的邻接表
|
|
|
|
p = (edgenode*)malloc(sizeof(edgenode));
|
|
|
|
strcpy(p->a, "大木桥路");
|
|
|
|
p->next = nm.adjust[3].firstnode;
|
|
|
|
nm.adjust[3].firstnode = p;
|
|
|
|
p = (edgenode*)malloc(sizeof(edgenode));
|
|
|
|
strcpy(p->a, "肇嘉浜路");
|
|
|
|
p->next = nm.adjust[3].firstnode;
|
|
|
|
nm.adjust[3].firstnode = p;
|
|
|
|
//下面是大木桥路
|
|
|
|
p = (edgenode*)malloc(sizeof(edgenode));
|
|
|
|
strcpy(p->a, "东安路");
|
|
|
|
p->next = nm.adjust[4].firstnode;
|
|
|
|
nm.adjust[4].firstnode = p;
|
|
|
|
p = (edgenode*)malloc(sizeof(edgenode));
|
|
|
|
strcpy(p->a, "嘉善路");
|
|
|
|
p->next = nm.adjust[4].firstnode;
|
|
|
|
nm.adjust[4].firstnode = p;
|
|
|
|
//下面是徐家汇
|
|
|
|
p = (edgenode*)malloc(sizeof(edgenode));
|
|
|
|
strcpy(p->a, "肇嘉浜路");
|
|
|
|
p->next = nm.adjust[5].firstnode;
|
|
|
|
nm.adjust[5].firstnode = p;
|
|
|
|
p = (edgenode*)malloc(sizeof(edgenode));
|
|
|
|
strcpy(p->a, "上海体育馆");
|
|
|
|
p->next = nm.adjust[5].firstnode;
|
|
|
|
nm.adjust[5].firstnode = p;
|
|
|
|
//下面是上海体育馆
|
|
|
|
p = (edgenode*)malloc(sizeof(edgenode));
|
|
|
|
strcpy(p->a, "徐家汇");
|
|
|
|
p->next = nm.adjust[6].firstnode;
|
|
|
|
nm.adjust[6].firstnode = p;
|
|
|
|
p = (edgenode*)malloc(sizeof(edgenode));
|
|
|
|
strcpy(p->a, "上海体育场");
|
|
|
|
p->next = nm.adjust[6].firstnode;
|
|
|
|
nm.adjust[6].firstnode = p;
|
|
|
|
}
|
|
|
|
int cont[100][100];//邻接矩阵
|
|
|
|
void aaa(){
|
|
|
|
int i,j;
|
|
|
|
for(i=0;i<nm.n;i++){
|
|
|
|
for(j=0;j<nm.n;j++) cont[i][j]=MAX;
|
|
|
|
}
|
|
|
|
}
|