思路不缜密,错写一个词,带来很隐患的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
后记:写程序头脑一定要清醒,须知调试时很费时间的。。。。
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
后记:写程序头脑一定要清醒,须知调试时很费时间的。。。。
相关文章推荐
- 浮点数精度误差带来的一个BUG
- Unity5 带来的一个 Bug [SetVertexStateGLES]
- onethink动态扩展菜单中遇到的一个小bug解决思路
- 爆一个VS2015 Update1更新带来的编译BUG【已有解决方案】
- VCLSkin可能存在的一个bug隐患
- ie6下text-indent带来的一个bug
- 一个拼图工具的制作思路 - 回复 "AlwaysBug" 的问题
- 2小时一个空指针BUG带来的思考
- 解决一个小概率bug的思路
- iOS layoutMargins 的坑:一个活久见的 bug
- 由一个小Bug推及ie及ff的dom元素差异
- windows中的一个小bug
- 发现了magento 中"Shopping Cart Price Rules"一个bug
- Android记录一个setTextColor常见的一个bug
- 当Generic.xaml遇上BitmapImage:发现一个疑似WPF Bug而又不似Bug的问题
- Go 1.5keyword搜索文件夹、文件、文件内容_修复一个小BUG
- C++标准库的一个有趣的小bug
- Android生存指南:解Bug策略和思路
- 又一个碉堡的BUG
- 与本地程序相关的一个bug------要配合利用date命令观察才好!