如何理解C++合并排序代码的工作原理?
我不理解这种合并排序。看起来这个函数是主要的mergeStort入口点。它调用一个助手函数(也称为mergeSort)来进行实际排序。但助手函数似乎没有正确设置queueRear,因此在调用助手函数后,此函数必须将queueRear设置为指向队列中的最后一个条目,如果队列为空,则必须将其设置为NULL。您不了解此不完整代码的哪一部分?实际排序似乎发生在MergeSortQueeFront中;但你并没有表现出……不仅代码是不完整的,而且看起来不像是合并排序。元素比较在哪里?这段代码做了一些其他的事情,然后name说,所以它是在向您发布。因此,这是一个不应该用于学习的错误代码。您有一个链表queueFront和一个指向列表中最后一个元素的指针queueRear。这将调用另一个未显示的函数对该列表进行排序,然后更新queueRear,使其正确地指向列表的新端。如何理解C++合并排序代码的工作原理?,c++,mergesort,C++,Mergesort,我不理解这种合并排序。看起来这个函数是主要的mergeStort入口点。它调用一个助手函数(也称为mergeSort)来进行实际排序。但助手函数似乎没有正确设置queueRear,因此在调用助手函数后,此函数必须将queueRear设置为指向队列中的最后一个条目,如果队列为空,则必须将其设置为NULL。您不了解此不完整代码的哪一部分?实际排序似乎发生在MergeSortQueeFront中;但你并没有表现出……不仅代码是不完整的,而且看起来不像是合并排序。元素比较在哪里?这段代码做了一些其他的事
template<class Type>
void linkedQueueType<Type>::mergeSort() {
mergeSort(queueFront);
if (queueFront == NULL)
queueRear = NULL;
else {
queueRear = queueFront;
while (queueRear->link != NULL)
queueRear = queueRear->link;
}
return;
}