gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 09:34:35 25 4
gpt4 key购买 nike

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

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

驱动程序代码:

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 + "\r\n");

retStr = buff.toString();
return retStr;
}
}

我的打印语句是:

Users
Program Files

我希望它的结果是:

Users
user1
user2
Program Files

最佳答案

这看起来像家庭作业,但我看到你已经做了一些与类(class)合作良好。您想要做的是访问每个遍历节点的 innerLink 属性,然后完全遍历它,然后继续到下一个潜在的头。

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

关于java - 如何打印链表中的内部节点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57646130/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com