繁体   English   中英

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

[英]Recursive Procedure in Lists Data Structure

这是一个返回列表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中的项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)

那是对的吗?

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

除此之外,您需要降低i ....否则您不会移动...

应该是这样的:

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)

您使用什么语言? 在大多数语言中,不能将数字用作变量名。 另外,您缺少两个括号,并且没有始终使用“ else if”。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM