#include "stdio.h"
#include "stdlib.h"
#include "io.h"
#include "math.h"
#include "time.h"
#define OK 1
#define ERROR 0
#define TRUE 1
#define FALSE 0
#define MAXVEX 100
typedef int Status;
typedef char VertexType;
typedef int EdgeType;
typedef struct EdgeNode
{
int adjvex;
EdgeType info;
struct EdgeNode *next;
}EdgeNode;
typedef struct VertexNode
{
VertexType data;
EdgeNode *firstedge;
}VertexNode, AdjList[MAXVEX];
typedef struct
{
AdjList adjList;
int numNodes,numEdges;
}GraphAdjList;
void CreateALGraph(GraphAdjList &G)/*此处将*G改为&G*/
{
int i,j,k;
EdgeNode *e;
printf("输入顶点数和边数:\n");
scanf("%d,%d",&G.numNodes,&G.numEdges); /* 此处将两个&G->改为&G. */
for(i = 0;i < G.numNodes;i++) /* 此处将G->改为G. */
{
scanf(&G.adjList[i].data); /* 此处将两个&G->改为&G. */
G.adjList[i].firstedge=NULL; /*此处将G->改为G. */
}
for(k = 0;k < G.numEdges;k++)/* 此处将G->改为G. */
{
printf("输入边(vi,vj)上的顶点序号:\n");
scanf("%d,%d",&i,&j);
e=(EdgeNode *)malloc(sizeof(EdgeNode));
e->adjvex=j;
e->next=G.adjList[i].firstedge; /* 此处将G->改为G. */
G.adjList[i].firstedge=e; /* 此处将G->改为G. */
e=(EdgeNode *)malloc(sizeof(EdgeNode));
e->adjvex=i;
e->next=G.adjList[j].firstedge; /* 此处将G->改为G. */
G.adjList[j].firstedge=e; /*此处将G->改为G. */
}
}
int main(void)
{
GraphAdjList G;
CreateALGraph(G);/*将&删去*/
return 0;
}
*和&的转化出现了问题?请看代码的注释行,改动前的代码是可以运行的。
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答 默认 最新
- threenewbee 2019-10-16 19:23关注
c语言不支持引用,你将源代码后缀修改为cpp
#include "stdio.h" #include "stdlib.h" #include <sys/io.h> #include "math.h" #include "time.h" #define OK 1 #define ERROR 0 #define TRUE 1 #define FALSE 0 #define MAXVEX 100 typedef int Status; typedef char VertexType; typedef int EdgeType; typedef struct EdgeNode { int adjvex; EdgeType info; struct EdgeNode *next; }EdgeNode; typedef struct VertexNode { VertexType data; EdgeNode *firstedge; }VertexNode, AdjList[MAXVEX]; typedef struct { AdjList adjList; int numNodes,numEdges; }GraphAdjList; void CreateALGraph(GraphAdjList &G)/*此处将*G改为&G*/ { int i,j,k; EdgeNode *e; printf("输入顶点数和边数:\n"); scanf("%d,%d",&G.numNodes,&G.numEdges); /* 此处将两个&G->改为&G. */ for(i = 0;i < G.numNodes;i++) /* 此处将G->改为G. */ { scanf(&G.adjList[i].data); /* 此处将两个&G->改为&G. */ G.adjList[i].firstedge=NULL; /*此处将G->改为G. */ } for(k = 0;k < G.numEdges;k++)/* 此处将G->改为G. */ { printf("输入边(vi,vj)上的顶点序号:\n"); scanf("%d,%d",&i,&j); e=(EdgeNode *)malloc(sizeof(EdgeNode)); e->adjvex=j; e->next=G.adjList[i].firstedge; /* 此处将G->改为G. */ G.adjList[i].firstedge=e; /* 此处将G->改为G. */ e=(EdgeNode *)malloc(sizeof(EdgeNode)); e->adjvex=i; e->next=G.adjList[j].firstedge; /* 此处将G->改为G. */ G.adjList[j].firstedge=e; /*此处将G->改为G. */ } } int main(void) { GraphAdjList G; CreateALGraph(G);/*将&删去*/ return 0; }
我这里通过编译。
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥120 计算机网络的新校区组网设计
- ¥20 完全没有学习过GAN,看了CSDN的一篇文章,里面有代码但是完全不知道如何操作
- ¥15 使用ue5插件narrative时如何切换关卡也保存叙事任务记录
- ¥20 海浪数据 南海地区海况数据,波浪数据
- ¥20 软件测试决策法疑问求解答
- ¥15 win11 23H2删除推荐的项目,支持注册表等
- ¥15 matlab 用yalmip搭建模型,cplex求解,线性化处理的方法
- ¥15 qt6.6.3 基于百度云的语音识别 不会改
- ¥15 关于#目标检测#的问题:大概就是类似后台自动检测某下架商品的库存,在他监测到该商品上架并且可以购买的瞬间点击立即购买下单
- ¥15 神经网络怎么把隐含层变量融合到损失函数中?