打印临界表时打印不全
int creat(AdjList *a)
{
int i,j,n,t,e;
int sum;//sum和arcnum一样代表图中总的弧数
ArcNode *p1,*p2,c;
printf("请输入城市的的总个数和航线的总个数\n");
scanf("%d,%d",&t,&e);
a->arcnum=e;
a->vexnum=t;
sum=e;
for(int w=1;w<=t;w++)
{
printf("\n请输入的第%d个城市名称:",w);
scanf("%s",cities[w]);
}
for(int x=1;x<=t;x++)
{
printf("%d %s\n",x,cities[x]);
}
for(i=0;i<a->vexnum;i++)
a->vertex[i].firstarc=NULL;//初始化和顶点第一个相邻的弧为空;
for(i=0;i<a->vexnum;i++)
{
printf("***请输入第%d个城市***\n",i+1);
scanf("%d",&a->vertex[i].data);
if(sum==0) continue;
printf("请输入本城市航班的个数\n");
scanf("%d",&n);
for(j=0;j<n;j++)
{
if(j==0)
{
int q;
p1=p2=( ArcNode*)malloc(sizeof(ArcNode));
p1->next=p2->next=NULL;
a->vertex[i].firstarc=p1;
printf("请输入与第%d个城市出发的航班第%d个到城市 以及票价\n",i+1,j+1);
scanf("%d,%d",&p1->adjvex,&p1->weigh);
sum--;
}
else{
p2=(ArcNode*)malloc(sizeof(ArcNode));
p2->next=NULL;
p1->next=p2;
printf("请输入第%d个城市出发的航班到第%d个城市 以及票价\n",i+1,j+1);
scanf("%d,%d",&p2->adjvex,&p2->weigh);
sum--;
}
}
printf("**************************\n");
}
}
//打印邻接表
void print(AdjList *a)
{
int i;
printf("序号\t顶点名称\t\t边表\n");
for (i = 0; i <a->vexnum ; i++)
{
printf("%d\t", i+1); //打印序号
printf("%s\t\t->", cities[i+1]); //打印顶点
while (a->vertex[i].firstarc)
{
printf("%s(%d)->", cities[a->vertex[i].firstarc->adjvex], a->vertex[i].firstarc->weigh);
a->vertex[i].firstarc = a->vertex[i].firstarc->next;
}
printf("NULL\n");
}
}
```c
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define MaxVertices 100
#define INF 65535
int visited[MaxVertices];
char cities [1000][1000];
int graph[MaxVertices][MaxVertices];
//*邻接表用两部分表示 1顶点节点包含(data firstarc) 2弧节点包含(adjvex, *next weigh)
typedef enum {DG/*有向图*/,DN/*有向网*/,UDG/*无向图*/,UDN/*无向网*/} GraphKind;
typedef struct LoopQueue
{
int data[MaxVertices];
int front;
int rear;
}Queue, *LQueue;
typedef struct ArcNode{
char adjvex;//该弧指向顶点的位置
struct ArcNode *next;//指向下一条弧的指针
int weigh;//弧的权值
}ArcNode;
typedef struct vertexNode{
char data;//顶点数据
ArcNode * firstarc;//指向该顶点第一条弧的指针
}vertexNode;
typedef struct{
vertexNode vertex[20];
int vexnum;
int arcnum;//图的顶点数量和弧的数量
//GraphKind kind;//图的种类
} AdjList;
```