问答题
一个栈(Stack)对象有三种状态:S1——栈空;S2——栈非空也非满;S3——栈满。则各个状态的条件如下:
S1:(t0)创建栈对象时初始化,这是系统做的
(t1)在S2状态下执行置空运算setEmpty()
(t2)在S3状态下执行置空运算setEmpty()
(t3)在S2状态下执行出栈运算Pop()
S2:(t4)在S1状态下执行进栈运算Push()
(t5)在S3状态下执行出栈运算Pop()
S3:(t6)在S2状态下执行进栈运算Push()
为简化问题,假设栈Stack的容量为2,栈元素的数据类型为整数。要求:
问答题
根据题意,画出栈对象的状态迁移图;
【正确答案】
【答案解析】根据题意,状态转换图如下:
问答题
计算该状态迁移图的MeCabe环路复杂性;
【正确答案】
【答案解析】从图上可以看出,该图分为五个区域,所以V(G)=5。 此外,图中边数E为6,结点数N为3,则V(G)=E-N+2=6-3+2=5。
问答题
确定基本的测试路径,要求测试路径从S1出发最后回到S1,同时在状态转换时注明转换条件。
【正确答案】
【答案解析】根据上图,可得基本测试路径如下: