void DoubleLink::op()
{
cout << "进行操作……" << endl;
Node *p1, *p2, *p4;
p1 = phead->pre;//初始化为an,指向当前最后一个元素
if (count % 2 == 0)
p2 = p1->pre->pre;
else
p2 = p1->pre;
do
{
//建立待处理偶数am和当前最后一个元素之间的联系
p4 = p2->pre;//备份am-1
p2->pre = p1;
p1->next = p2;
//建立am-1和am+1之间的联系
p4->next = p2->next;
p2->next->pre = p4;
p1 = p2;//更新p1,指向当前的最后一个元素
p2 = p4->pre;//更新p2,指向am-2
} while (p2!= phead);
p1->next = phead;//最后把头结点和最后一个元素建立联系
phead -> pre = p1;
}
还是要多动脑多画图