top总是指向栈顶元素的下一个元素,可以把它称为指针(Pointer). 建议改为:指向(非空栈)栈顶元素的下一个元素。
Sorry, this will not change. 尽管你的建议很有道理。而我也有我的道理。 第一,栈为空的情况并不是一个special case,所以我不想强调栈为空的情况。如果认为栈顶的位置是-1,那么top指向0仍然是指向栈顶下一个元素,和其它情况一样处理,不需要特殊处理。C程序员应该具有这种分析能力,尽可能减少特殊处理代码。 第二,即使我不提栈为空的情况,这里也没有歧义,一般人读到这里都应该自己思考栈为空是什么情况,即使没有思考到位,结合后面的代码例子也该理解到位了。
呵呵,出发点不一样。你说的有道理,我是从数据结构这个方面想的。
前面已经介绍过结构体的概念,建议用结构来实现堆栈的实例,因为感觉用全局变量+数组不便于理解
您的意思是把全局变量top和数组stack合在一个结构体里吗?感觉不是很有必要。
我只是随便写一点我想到的东西,或许关系不是很大
这里可以再次强调一下递归
void print_backward(int pos)
{
if(pos == LEN)
return;
print_backward(pos+1);
putchar(buf[pos]);
}
通过简单的交换两行代码,就可以实现顺序打印
void print_backward(int pos)
{
if(pos == LEN)
return;
putchar(buf[pos]);
print_backward(pos+1);
}
你可以无视,我就是简单的写一下自己看到这里的心得体会
呵呵谢谢,我觉得不是太有必要写到书里。不过这些相关的讨论会一直保留的:)
如果您有建设性意见,哪怕只是纠正一个错别字,也请不吝赐教,您留下的姓名和email将会出现在本书前言的致谢中。再次感谢您的宝贵意见!