class ListNode
{
public object Data { get; private set; }
public ListNode Next { get; set; }
public ListNode(object Element)
{
Data = Element;
}
public ListNode(object Element, ListNode NextNode)
{
Data = Element;
Next = NextNode;
}
public ListNode()
{
}
}
class LinkedList
{
ListNode first;
ListNode last;
public LinkedList()
{
first = null;
last = null;
}
public ListNode Find(object After)
{
ListNode current = new ListNode();
current= first;
while (current.Data != After)
current = current.Next;
return current;
}
public void Add(object newItem, object After)
{
ListNode current=new ListNode();
ListNode newNode=new ListNode();
current = Find(After);
newNode.Next = current.Next;
current.Next = newNode;
}
public void InsertAtFront(object Element)
{
if (IsEmpty())
{
first = last = new ListNode(Element);
}
else
{
first = new ListNode(Element,first);
}
}
bool IsEmpty()
{
return first == null;
}
public void Display()
{
ListNode current = first;
while (current!=null)
{
Console.WriteLine(current.Data);
current = current.Next;
}
}
}
특정 요소 후 추가를 위해 나는 찾기 메소드를 구현,하지만 난 디버깅 할 때 그것은 나에게 개체 예외의 인스턴스로 설정되지 객체 참조를 보여주는. Find 메서드 나 Add After 메서드에서 저의 실수를 지적하십시오. 감사합니다.링크 된 목록에서 애프터 메쏘드가 어떻게 작동합니까?
숙제? 그렇지 않다면'List
불필요한'ListNode' 초기화 중 일부를 제거하는 것이 좋습니다. 즉 변화'현재 = 찾기 (후),' ListNode 전류'에 = (후) 찾기,'당신'새 = 현재 ListNode()를 ListNode 제거 할 수 which'd;'등 –