DoublyLinkedList
给出了用于处理双向链表的类。有必要落实其中的方法AddAfter
和措施AddBefore
。从我所理解的一切来看,它应该基于方法Add
,但我不明白要用什么来补充它,除了LinkedListNode<T> node
- 在什么之前或之后,以及T value
- 添加。
以防万一:
public class DoublyNode<T>
{
public DoublyNode(T data)
{
Data = data;
}
public T Data { get; set; }
public DoublyNode<T> Previous { get; set; }
public DoublyNode<T> Next { get; set; }
}
public class DoublyLinkedList<T> : IEnumerable<T> // двусвязный список
{
DoublyNode<T> head; // головной/первый элемент
DoublyNode<T> tail; // последний/хвостовой элемент
int count; // количество элементов в списке
// добавление элемента
public void Add(T data)
{
DoublyNode<T> node = new DoublyNode<T>(data);
if (head == null)
head = node;
else
{
tail.Next = node;
node.Previous = tail;
}
tail = node;
count++;
}
public void AddFirst(T data)
{
DoublyNode<T> node = new DoublyNode<T>(data);
DoublyNode<T> temp = head;
node.Next = temp;
head = node;
if (count == 0)
tail = head;
else
temp.Previous = node;
count++;
}
public void AddLast(T data)
{
DoublyNode<T> node = new DoublyNode<T>(data);
DoublyNode<T> temp = tail;
node.Previous = temp;
tail = node;
if (count == 0)
head = tail;
else
temp.Next = node;
count++;
}
public void AddAfter(LinkedListNode<T> node, T value)
{
}
public void AddBefore(LinkedListNode<T> node, T value)
{
}
}