思路不缜密,错写一个词,带来很隐患的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

 

 

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

阅读更多
文章标签: graph null c
个人分类: C/C++
想对作者说点什么? 我来说一句

基于Android系统的NFC技术实现

2014年03月10日 6.25MB 下载

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭