数据结构(C++)
2 回答
守着一只汪
TA贡献1872条经验 获得超3个赞
你的那个Bool不应该自己定义,应该直接用标准本来就自带的bool类型;即使你要自己定义,你也应该定义为enum Bool{FALSE, TRUE}。因为在C++里,bool和int是可以相互转换的,而enum和int也是相互转换的。如果false放在后面,则返回false将会返回1,也就是系统本身的true值。也就是说返回false反而变成了true,这直接导致了你的full函数出现了问题。从而你的push函数一直返回overflow。
汪汪一只猫
TA贡献1898条经验 获得超8个赞
没弄明白你的这个栈是干什么的,下面说说它的错误:
首先是编译不通过,除了在声明error_code这个枚举类型时,你使用error_code这个名字,在后面的所有函数返回error_code都是错的,比如,
error_code stack::get_top(int &x){
if(empty())return underflow;
else{
x=A[count-1];
return success;
}
}
修改为返回int。
还有,系统本身就有bool类型的值,true false,并且值一般都是1 和 0;
你定义这个类型 enum Bool{TRUE,FALSE}; 完全是没有必要,或者说是错误。
所以把你定义的这个删掉,然后程序里面出现的TRUE,FALSE,改成系统的。
- 2 回答
- 0 关注
- 563 浏览
添加回答
举报
0/150
提交
取消