Я пытаюсь выяснить, есть ли у меня общая идея по поводу оператора присваивания для двунаправленных списков с использованием текущего узла (без переднего или заднего). Это мой псевдокод. Мне нужно снять эту концепцию. Если кто-то может помочь, это будет мило.Оператор присваивания списка ссылок
Loop to start
temp = temp->back
loop to count
if 0
receiver->back = null
receiver->entry = temp->entry
receiver->next = temp->next
if > 0
receiver->back = temp->back
receiver->entry = temp->entry
receiver->next = temp->next
if == count-1
receiver->back = temp->back
receiver->entry = temp->entry
receiver->next = null
Это моя структура Node:
struct Node {
// data members
Node_entry entry;
Node<Node_entry> *next;
Node<Node_entry> *back;
// constructors
Node();
Node(Node_entry, Node<Node_entry> *link_back = nullptr,
Node<Node_entry> *link_next = nullptr);
}
Я не ищу для кода ответа, но алгоритм (на самом деле код, который хорошо документирован и написано хорошо, как пример). Мне просто нужно понять, как работает копирование.
Вы спрашиваете, как скопировать дважды связанный список? –
Нам нужна дополнительная информация о вашей конкретной реализации списка. В C++ (с которым вы помечали первоначально), обычно имеет класс «контейнер», который представляет весь список, что значительно упрощает его. (Кажется, вы имеете дело с равными узлами и, возможно, указателями на один узел, чтобы представлять полный список.) – 2010-11-01 15:25:32
Я хочу знать, как его скопировать, но я не ищу конкретный код в качестве ответа, алгоритм. Я просто хочу получить концепцию, поэтому я могу понять, как она работает. – knownasilya