为了账号安全,请及时绑定邮箱和手机立即绑定

数据结构(C++)?

数据结构(C++)?

C++
holdtom 2019-02-06 10:07:52
数据结构(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。

查看完整回答
反对 回复 2019-03-08
?
汪汪一只猫

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,改成系统的。




查看完整回答
反对 回复 2019-03-08
  • 2 回答
  • 0 关注
  • 563 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信