【问题标题】:Circular singly-linked list循环单链表
【发布时间】:2011-03-22 13:48:49
【问题描述】:

这是家庭作业

“开发一个保存单链表的结构。创建一个带循环的列表。创建一个确保列表是循环的算法(保存列表元素的结构必须由您实现)”

这可能听起来令人困惑,而且我正在翻译这一事实并没有帮助。据我了解,我需要创建一个自定义单链表,它会在到达末尾后返回第一个项目。

我真的很感激任何关于如何做到这一点的想法。

【问题讨论】:

    标签: c# list


    【解决方案1】:

    想想单链表中的每个节点“知道”什么(即它存储什么数据)。然后想想制作一个循环列表意味着什么。最后一个元素之后的“下一个”元素是什么?

    希望这足以让您入门。

    【讨论】:

    • 据我所知,它只存储它的下一个邻居,但我仍然对我的程序结构应该是什么样子感到困惑。当然,它会在最后一个之后回到第一个,但我还是有点迷茫。
    • @Max:迷路到底是什么?你走了多远?听起来您需要编写两段代码:列表本身和对其的测试。你觉得哪个困难?
    • Max,从一个节点的结构开始。
    • 两者都是,说实话。我创建了两个通用类,一个用于列表元素,一个用于列表本身。元素类是一个通用类,它具有一个用于接收数据的字段,以及一个类型为“Element”本身的“Next”字段。现在在 List 类中是否需要引入三个变量,例如 first、current 和 last?我想我还需要一个 Add 方法来稍后用值填充列表以进行测试,我还需要什么?如果这听起来很愚蠢,我很抱歉,我是个新手。
    • @Max:列表本身不会跟踪您在其中的位置——它只需要知道对列表头部的引用。想想你需要什么才能使用这个列表。
    【解决方案2】:

    您只需要一个指向头节点的指针,当您从列表中添加和删除时,您应该确保不会丢失它。使用 do...while 构造遍历循环列表,而不是使用 while 构造用于遍历单链表。其余操作与单链表几乎相同。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-04-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多