理解模型——用树的概念理解递归

1-模型概述

3个跳转
向下 down
向上 up
平移 move
4个区:

func(…){
    # 函起区 func_start
    while{
        # 循起区 while_start
        func(…);
        # 循结区 while_end
    }
    # 函结区 func_end
}

5个状态
起后 AFTER_BEGIN :[func_start, while_start]
下后 AFTER_DOWN : [func_start, while_start]
循后 AFTER_MOVE : [while_end, while_start]
上后 AFTER_UP : [while_end, func_end]
结前 BEFORE_END : [while_end, func_end]
简单校检
假设有n次跳转,那么:
- 有(n+2)个状态;
- 2*(n+2)个区操作;
- 所有操作对象都出现两次。

2-示例

这里写图片描述

序号状态操作区域操作对象
1BEGIN_AFTER0.func_start;
0.while_start;
2
2DOWN_AFTER1.func_start;
1.while_start;
4
3DOWN_AFTER2.func_start;
2.while_start;
12
4UP_AFTER2.while_end;
2.func_end;
12
5MOVE_AFTER1.while_end;
1.while_start;
4&5
6UP_AFTER1.while_end;
1.func_end;
5
7END_BEFOR0.while_end;
0.func_end;
2
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值