您的位置:首页 > 其它

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

2010-05-29 02:17 211 查看
本是一个做图的建立和深度遍历,广度遍历的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

后记:写程序头脑一定要清醒,须知调试时很费时间的。。。。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: