Я готовлюсь к интервью / вопросам доски, и я строю некоторые структуры данных с нуля для практики. Для двусвязного списка я пытаюсь сделать ссылки сами по себе доступными для пользователя, но установить их можно только через сам LinkedList. Как лучше всего это делать? Приведенный ниже рабочий код - это то, что у меня есть сейчас (я не тестировал и не делал много реализаций здесь, не обращаясь за помощью в этой части), но я хотел бы удалить публичную функцию set для Next и Previous для Link, пока все еще в состоянии установить мой LinkedList.
public class MyLink<T>
{
public MyLink<T> Next { get; set; }
public MyLink<T> Previous { get; set; }
public T Data { get; set; }
}
public class MyLinkedList<T>
{
public MyLink<T> Head
{
get
{
return Head;
}
set
{
value.Next = Head.Next;
value.Previous = Head.Previous;
Head.Next.Previous = value;
Tail.Next = value;
Head = value;
}
}