好的,所以我必须按照放入的顺序打印出一个链表。每个节点都指向一个票证对象,票证对象有它自己的打印函数,我可以调用它。我可以删除列表的开头并将其引用到下一张票,但对其进行编码以便打印出最新到最旧的。我相信问题在于我的代码允许我向列表中添加票证:
private class TicketNode
{ //basic node
public TicketNode next;
public Ticket data;
public TicketNode(Ticket tic)
{
data = tic;
}
}
public void PrintAll()
{//Prints all tickets
TicketNode cur = first;
while (cur != null)
{
cur.data.PrintDescription();
cur = cur.next;
}
}
public void AddTicket(Ticket t)
{
TicketNode ticNode; //creates a new node
if (first == null) //for kick-starting the list
first = new TicketNode(t);
else
{
ticNode = new TicketNode(t); //initializes node
ticNode.next = first;
first = ticNode; //first.next is the ticket that was ticNode
}
}
例如:我输入带有字符串“Low”、“Another Low”和“Final Low”的票,当我想打印出来时,我期望:
低 另一个低 最终低
相反,我得到: 最终低 另一个低 低
如果我要删除到最旧的(“低”),我应该在下次打印时看到类似这样的内容:Another Low Final Low
关于如何重新定位列表的任何想法?