【发布时间】:2015-06-01 12:37:30
【问题描述】:
对于一个学校项目,我正在制作一个 RPN 计算器。这个计算器有一个抽象类 Stack,其中三种不同的堆栈实现派生自其中。其中之一是链表堆栈。对于这些堆栈,我必须显示堆栈上的值。为此,我使用了一个数组。对于我的数组堆栈和列表堆栈来说,这很容易,但我不知道如何将链表转换为数组。最好的方法是什么?
这是我用于链表的代码。
public class Node
{
public int data;
public Node next;
public Node(int i)
{
data = i;
next = null;
}
public void Add(int i)
{
if (next == null)
{
next = new Node(i);
}
else
{
next.Add(i);
}
}
}
public class MyLinkedList
{
private Node headNode;
private int count;
public MyLinkedList()
{
headNode = null;
count = 0;
}
public int Count()
{
return count;
}
public void Add(int i)
{
if (headNode == null)
{
headNode = new Node(i);
}
else
{
headNode.Add(i);
}
count++;
}
【问题讨论】:
-
你大概知道如何访问你的链表的每个节点。因此:(1)通过访问每个节点来计算所有节点(如果存在,则使用现有的
count),(2)创建该大小的数组,(3)再次访问每个节点,这次将每个节点复制到数组的连续元素。
标签: c# arrays linked-list