gpt4 book ai didi

visual-studio - 奇异 LinkedList 是否以 LIFO 方式给出输出?

转载 作者:行者123 更新时间:2023-12-02 01:21:27 34 4
gpt4 key购买 nike

我正在研究一个单链表。在创建自己的链表时,我对打印自定义链表中的节点集合感到困惑。

我想知道,单向链表是否像堆栈一样以后进先出的方式显示其集合?

下面是我自己的 LinkedList 并且节点是一个类,任何人都可以告诉我单数 LinkedList 是否以 Lifo 方式打印集合。

class MYlinklist
{
Node header;

public void Add(int a)
{
Node n = new Node();
n.element = a;
n.Next = header;
header = n;
}

public void Print()
{
Node n = new Node();
n = header;
while (n != null)
{
Console.WriteLine(n.element.ToString());
n = n.Next;
}
}
}

最佳答案

如果您指的是 LinkedList<T> ,答案取决于您如何添加新成员。

如果你想让链表以 LIFO 的方式迭代,你可以通过始终使用 AddFirst 来实现。添加,和 RemoveFirst去除。这将导致它的行为非常像堆栈。

关于 LinkedList<T> 的好处然而,你可以在任何地方添加 inside of the list作为 O(1) 操作。


编辑:

如果您希望这是 FIFO,则需要更改添加节点的方式,并将它们添加到列表的末尾,而不是开头:

class MyLinkedList
{
Node header;
Node last;

public void Add(int a)
{
Node n = new Node();
n.element = a;
n.Next = null; // We'll put this at the end...
if (last == null)
{
header = n;
last = n;
}
else
{
last.Next = n;
last = n;
}
}

public void Print()
{
Node n = new Node();
n = header;
while (n != null)
{
Console.WriteLine(n.element.ToString());
n = n.Next;
}
}
}

关于visual-studio - 奇异 LinkedList 是否以 LIFO 方式给出输出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3865590/

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