Pra*_*bhu 1 .net c# java recursion loops
我有两个方法,第一个方法从forloop中调用第二个方法,但第二个方法用子项id调用第一个方法.这是一种递归形式吗?虽然相同的方法不会调用自身,但是存在堆栈溢出的风险还是可能与正常递归方法相关的任何其他问题?
void AddItems(int id)
{
var items = GetItems(id);
foreach (var item in items)
{
AddItem(item);
}
}
void AddItem(Item item)
{
DoSomething(item);
AddItems(item.subItemId);
}
Run Code Online (Sandbox Code Playgroud)
编辑:有没有办法进行这种迭代?我正在使用C#.
根据经验,如果它直接或间接地在相同或不同的数据上调用它本身就是递归.
除非它是尾递归(这不是),否则递归容易发生堆栈溢出.特别subItemId是,与其父ID相同的将导致循环,从而导致SO.
| 归档时间: |
|
| 查看次数: |
225 次 |
| 最近记录: |