Создаю свой собственный связанный список; как сделать так, чтобы ссылки менялись только через сам список? - PullRequest
0 голосов
/ 07 мая 2019

Я готовлюсь к интервью / вопросам доски, и я строю некоторые структуры данных с нуля для практики. Для двусвязного списка я пытаюсь сделать ссылки сами по себе доступными для пользователя, но установить их можно только через сам 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;
        }
    }

1 Ответ

1 голос
/ 07 мая 2019

нашел ответ; использование внутреннего ключа доступа решает эту проблему

...