NodePtr p = new Node(id, age, email)
p->prev = top;
p->next = top->next;
top->next = p;
top->next->prev = p;
我试图在第一个节点之后插入节点p。
我正在尝试自学如何使用双向链表。当我把它画出来时,看起来它会起作用。我只是想确认这是否正确。如果这不正确,我该如何解决?
答案 0 :(得分:1)
您的实施无效。
top->next = p; // top->next is now p
top->next->prev = p; // p->prev is now p, oops
交换这两行,这是正确的。
top->next->prev = p; // top->next->prev is now p
top->next = p; // top->next is now p