数据结构(C语言)问题

CreatGraph(intn,VNodeG[]){inti,e;ArcNode*p,*q;printf("Inputtheinformationofthevertex\... CreatGraph(int n , VNode G[] ){ int i,e; ArcNode *p , *q; printf("Input the information of the vertex\n"); for(i=0;i<n;i++){ scanf("%d",&G[i]); G[i].firstarc = NULL; /*初始化第一条边为空*/ } for(i=0;i<n;i++){ printf("Creat the edges for the %dth vertex\n",i) ; scanf("%d",&e); while(e!=-1){ p = (ArcNode *)malloc(sizeof(ArcNode)); /*创建一条边*/ p->next = NULL; p->adjvex = e; if(G[i].firstarc == NULL) G[i].firstarc = p; /*i结点的第一条边*/ else q->next = p; /*下一条边*/ q = p; scanf("%d",&e); } }}这是邻接表的部分代码。为什么创建边时要p要malloc(对应 p = (ArcNode *)malloc(sizeof(ArcNode)); ),而q直接用就行?
这是邻接表的部分代码。为什么创建边时p要malloc(对应 p = (ArcNode *)malloc(sizeof(ArcNode)); ),而q直接用就行?
展开
 我来答
mzjiaopen2013
2017-12-08 · TA获得超过712个赞
知道小有建树答主
回答量:148
采纳率:88%
帮助的人:73.5万
展开全部
p,q都是指针,需要存放东西 就要申请内存,调用malloc,不然指针赋值就不用malloc。p存放了值e,所以要malloc,q指针指向p,不存放其它信息,不许要申请内存。
靠谱儿妈妈
2017-10-10 · TA获得超过958个赞
知道小有建树答主
回答量:741
采纳率:74%
帮助的人:265万
展开全部
p是要创建的node,而q在这里就是一个临时变量,记录的是上一次创建的node。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式