0
我無法實現雙向鏈表的複製構造函數。我會在下面的for循環中設置尾部和先前的指針嗎?以下作品適用於單鏈表:doubleLinkedList複製構造函數
sortedList::sortedList(const sortedList& original)
: size(original.size)
{
if (original.head == NULL)
head = NULL; // original list is empty
else
{
// copy first node
head = new listNode;
tail = new listNode;
assert(head != NULL); // check allocation
assert(tail != NULL); // check allocation
head->item = original.head->item;
tail->item = original.tail->item;
// copy rest of list
listNode *newPtr = head; // new list pointer
// newPtr points to last node in new list
// origPtr points to nodes in original list
for (listNode *origPtr = original.head->next; origPtr != NULL; origPtr = origPtr->next)
{
newPtr->next = new listNode;
assert(newPtr->next != NULL);
newPtr = newPtr->next;
newPtr->item = origPtr->item;
/*
newPtr = new listNode;
newPtr->item = origPtr->item;
newPtr->prev = origPtr->prev;
tail->next = origPtr;
tail = origPtr;*/
}
newPtr->next = NULL;
}
}
添加答案。嘗試看看它是否有效。 – trans1st0r