java这本教科书中的链表是否包含“递归构造函数”?
这是教科书实现中链表类的一个片段:
public class ListItem
{
Object item;
ListItem next;
public ListItem(Object item)
{
this.item = item;
next = null;
}
}
它看起来像是递归——类ListItem
的实例变量也被命名为ListItem
。这个递归合适吗
我曾经用Pascal定义过一个链表。我看到了一个你可能会称之为递归的提示(pNodeType
,又称^NodeType
),但它与Java代码片段中的内容不同:
type
**pNodeType** = ^NodeType ;
NodeType = record
name : string ;
next : **pNodeType** ; // conceptually, change the type to **^NodeType**
end ;
所以我想,既然Java缺少指针,而对象是引用,我还是在看同样的东西。对吧
因此,如果我想要一个双链接列表(也是反向的),我会像这样添加一个实例变量
ListItem prev;
向构造函数中添加一行代码,如下所示
prev = null;
并采取与前向联系同样的谨慎措施
对吧
最后,如果我想要一个通用链表,我只需要像这样更改代码片段,并将所有出现在方法中的“Object”更改为“E”:
public class ListItem<E> {
E item;
ListItem next;
public ListItem(E item) {
this.item = item;
next = null;
}
}
对吧
共 (0) 个答案