Recursion 列表数据结构中的递归过程

Recursion 列表数据结构中的递归过程,recursion,data-structures,Recursion,Data Structures,这是一个返回列表1中最后一项的过程: proc last (1) if (isEmpty(1)) error('Oops. Empty list in procedure last.') elseif (is empty(rest1)) return (first(1) else return last(rest(1)) 修改它以创建一个递归过程getItem(i,l),该过程返回列表1中的itemi,其中i是大于零的整数 proc getItem(i,1

这是一个返回列表1中最后一项的过程:

proc last (1)
if    (isEmpty(1))
       error('Oops. Empty list in procedure last.')
elseif (is empty(rest1))
       return (first(1)
else   return last(rest(1))
修改它以创建一个递归过程
getItem(i,l)
,该过程返回列表1中的item
i
,其中
i
是大于零的整数

proc getItem(i,1)
if    (isEmpty(1))
      error('Opps. Empty list in procedure last.')
else if (isEmpty(getItem,i1)
else if i > 0
      return item(i,1)

对吗?

你用的是什么语言?在大多数语言中,不能使用数字作为变量名。另外,您缺少了几个括号,并且没有一致地使用“else if”。

要使其递归工作,最后一行需要具有相同的函数名

除此之外,你需要减少我。。。。否则你就不动了

应该是这样的:

proc getItem(i,1)
if    (isEmpty(1))
      error('Opps. Empty list in procedure last.')
else if (i > 0)
     return getItem(i-1,1)
else return first(1)