思路不缜密,错写一个词,带来很隐患的bug

本是一个做图的建立和深度遍历,广度遍历的c程序,却因其中一个小bug,我调试了几个小时:while循环写成了if语句,编译,运行都没有任何问题,但是输出数据后没有继续动了。卡死了。

 

 

int NextAdjVex(ALGraph graph,int v,int w){
       
                       
      if(v<0||v>=graph.vexnum){/*printf("没有改结点/n");*/return -1;}
  else if(w<0||w>=graph.vexnum){/*printf("没有改结点/n");*/return -1;}
       
  ArcNode * arcNode=graph.vertices[v].firstarc;//指针指向第一个结点
         //if(arcNode&&((arcNode->adjvex)!=w))arcNode=arcNode->nextarc;//找到arcNode->adjvex=w为止
          while(arcNode&&((arcNode->adjvex)!=w))arcNode=arcNode->nextarc;//找到arcNode->adjvex=w为止
 

   //此时arcNode为指向w的指针,可能是第一个,可能是最后一个
   if(arcNode->nextarc==NULL)return -1;//如果w已经是最后一个结点,返回-1
      else return arcNode->nextarc->adjvex;//w不是最后一个结点,返回相当于w的下一个结点
}//NextAdjVex

 

 

后记:写程序头脑一定要清醒,须知调试时很费时间的。。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值