【Money】笑咪咪 IT播吧分享成果 IT播吧: 老师运营规则 IT播吧: 怎样下载视频教程
数据结构是编程的基础,大家一定要掌握哦。介绍数据结构,使用C语言做例子。本讲是队列。希望对大家有帮助!
请点击下面的链接在线观看:
====================点击这里在线观看====================
回馈老师:你们的每一个留言都可能温暖老师的心,你们的每一次的关注都会是我们老师录制新视频的动力,你们每一次点击广告老师的辛劳都会收到回报,所以不要吝啬。如果你羞于言辞,就请点击广告帮助老师增加收入。所有老师的广告都在视频教程的左边。也请宣传我们的辛勤耕耘的老师.
这段代码: #define MAX_SIZE 2 int queue[MAX_SIZE]; ... int InQueue(int value) { //这里判断,我觉得有问题 if(rear >= MAX_SIZE) return 0; rear ++; queue[rear] = value; return 1; } 对于if判断力的条件rear >= MAX_SIZE,我觉得“=”不应该要。因为: 1、逻辑上,队列大小是10,rear应该最大为9 2、会造成数组越界,当rear=10,queue[10]就越界了。同时我还发现VC++6.0对此是不报错和警告,查资料原来是C/C++并不会进行越界检查,需要程序员自己检查,而且越界会存在潜在的危险。(如果用Visual Stdio则会运行时报错)。 如有不对,请予指正。
评论
关于思成老师的数据结构6,有一个C的数组问题,请指教。
这段代码:
#define MAX_SIZE 2
int queue[MAX_SIZE];
...
int InQueue(int value)
{
//这里判断,我觉得有问题
if(rear >= MAX_SIZE)
return 0;
rear ++;
queue[rear] = value;
return 1;
}
对于if判断力的条件rear >= MAX_SIZE,我觉得“=”不应该要。因为:
1、逻辑上,队列大小是10,rear应该最大为9
2、会造成数组越界,当rear=10,queue[10]就越界了。同时我还发现VC++6.0对此是不报错和警告,查资料原来是C/C++并不会进行越界检查,需要程序员自己检查,而且越界会存在潜在的危险。(如果用Visual Stdio则会运行时报错)。
如有不对,请予指正。