解答
采用头插法建表的思路,用p遍历所有数据节点,先将新表看成只有一个头节点的双链表,然后将每个节点p插入该双链表的前端。
算法实现如下:
//有一个双链表L,其中有n(n >= 1)个数据节点,设计一个算法将所有节点逆置
void Reverse(DNode*& L)
{
DNode* p = L->next, * q;
L->next = NULL;
while (p != NULL) //遍历原双链表的所有数据节点
{
q = p->next; //用q临时保存节点p的后继节点
p->next = L->next; //将节点p插入新链表的前端
if (L->next != NULL)
L->next->prior = p;
L->next = p;
p->prior = L;
p = q; //继续处理余下的节点
}
}
帖子还没人回复快来抢沙发