如何打印链表中的内部节点



我正在学习链表。我可以打印链表,但是当我尝试创建内部节点时,我无法打印与内部节点关联的任何属性。

我已经在我的代码中设置了一个内部链接,它似乎正在运行,但属性没有从程序中打印出来

驱动程序代码:

public class Test_HW1
{
public static void main(String[] args)
{
LLNode<Directory> node1 = new LLNode<Directory>(new Directory("Users"));
LLNode<Directory> node2 = new LLNode<Directory>(new Directory("user1"));
LLNode<Directory> node3 = new LLNode<Directory>(new Directory("user2"));
LLNode<Directory> node4 = new LLNode<Directory>(new Directory("Program Files"));
node2.setLink(node3);
node1.setInnerLink(node2);
node1.setLink(node4);
traverse(node1);
}
public static void traverse(LLNode<Directory> head)
{
while(head != null)
{
System.out.println(head.getInfo());
head = head.getLink();
}
}
}

LLNode 类:

public class LLNode<T>
{
protected LLNode<T> link;
protected T info;
protected LLNode<T> innerLink;
public LLNode(T info)
{
this.info = info;
link = null;
innerLink = null;
}
public void setInfo(T info)
{ 
this.info = info;
}
public T getInfo()
{ 
return info; 
}
public void setLink(LLNode<T> link)
{
this.link = link;
}
public LLNode<T> getLink()
{ 
return link;
}
public void setInnerLink(LLNode<T> link)
{
this.innerLink = link;
}
public LLNode<T> getInnerLink()
{
return innerLink;
}
}

目录类:

public class Directory
{
private String name;
public Directory(String name)
{
this.name = name;
}
public String getName()
{
return name;
}
public String toString()
{
StringBuffer buff = new StringBuffer();
String retStr = "none yet";
buff.append(name + "rn");
retStr = buff.toString();
return retStr;
}
}

我的打印语句是:

Users
Program Files

我期待它以:

Users
user1
user2
Program Files

这看起来像家庭作业,但我看到你已经做了一些 与班级合作得很好。您正在尝试做的是访问每个遍历节点的innerLink属性,然后完全遍历它,然后再继续下一个潜在的头。

看看你的驱动程序代码,你甚至从来没有调用相应的getter。你可能想研究图遍历算法,特别是考虑到你的目录将形成的结构(也许是一种特殊的图吗?)。 当然,你可以(也应该)自己对此感到困惑 - 提示:只有一个循环不会做到这一点(如果你以非递归方式实现它)。祝你好运,这是一个很好的练习!:)

相关内容

  • 没有找到相关文章

最新更新