注册 登录
编程论坛 C++教室

链表逆置问题

我心飞扬123 发布于 2014-10-14 16:10, 379 次点击
已知链表头结点和正整数v,例如链表1->2->3->4->5->6,若v=2,则逆置后的链表为2->1->4->3->6->5;若v=3,则逆置后的链表为3->2->1->6->5->4;若v=4,则逆置链表为4->3->2->1->5->6;
用c或者c++编程。
4 回复
#2
stop12042014-10-15 10:17
if v>1 ; cout v-- ; if v<6 ;cout  v++ ;
四个内容 循环搞定
#3
我心飞扬1232014-10-15 20:31
回复 2 楼 stop1204
v只是说明链表逆置的个数,不是输出v
#4
mengzzq12014-10-18 18:37
while(q!=NULL)
{
    for(i=0;i<v||q!=NULL;i++)
    q=q->next;
    if(q==NULL)break;
    for(i=0;i<v;i++)
        {
        p=p->prior;
        p->data=q->data;
        p=p->next;
        }
    for(i=0;i<v||q!=NULL;i++)
    q=q->next;
    if(q=NULL)break;
}

p为旧表 q为新表  p双向链表~~
#5
mengzzq12014-10-18 18:38
额 不好意思。。刚发错了。上个没想好
while(1)
{
    for(i=0;i<v;i++)
    {

        Push(S,&q);
        p=p-next;
        if(p==NULL)break;
    }
    for(i=0;i<v;i++)
    {
        pop(S,q);
        q=q->next;
    }


}//p为旧链表  q为新表(逆置后)
1