有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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) 个答案