【单选题】6 使用Shaffer编写的教材《数据结构与算法分析》的LList类,给LList类的实现添加一个成员函数,倒置线性表中元素的顺序。对于n个元素的线性表,算法的运行时间应该为Θ(n)。
A.
template void LList ::reverse() { // Reverse list contents if(head->next == NULL) return; // First, fix fence by pushing it forward one step if (fence->next == NULL) fence = head; else fence = fence->next; // Now, reverse the list link * temp1 = head->next; link * temp2 = temp1->next; while (temp2 != NULL) { link * temp3 = temp2->next; temp2->next = temp1; temp1 = temp2; temp2 = temp3; } }
B.
template void LList ::reverse() { // Reverse list contents if(head->next != NULL) return; // First, fix fence by pushing it forward one step if (fence->next == NULL) fence = head; else fence = fence->next; // Now, reverse the list link * temp1 = head->next; link * temp2 = temp1->next; while (temp2 != NULL) { link * temp3 = temp2->next; temp2->next = temp1->next; temp1 = temp2; temp2 = temp3; } head->next = temp1; }
C.
template void LList ::reverse() { // Reverse list contents if(head->next == NULL) return; // First, fix fence by pushing it forward one step if (fence->next == NULL) fence = head; else fence = fence->next; // Now, reverse the list link * temp1 = head->next; link * temp2 = temp1->next; while (temp2 != NULL) { link * temp3 = temp2->next; temp2->next = temp1; temp1 = temp2; temp2 = temp3; } head->next = temp1; }
D.
template void LList ::reverse() { // Reverse list contents if(head->next == NULL) return; // First, fix fence by pushing it forward one step if (fence->next == NULL) fence = head; else fence = fence->next; // Now, reverse the list link * temp1 = head->next; link * temp2 = temp1->next; while (temp1 != NULL) { link * temp3 = temp2->next; temp1 = temp2; temp2 = temp3; } head->next = temp1; }