流星划过123 2016-03-28 08:38 采纳率: 50%
浏览 1634
已采纳

单链表具体实现实现reverse

用c++语言写,需要完整的程序,能运行的
将链表的顺序颠倒过来,最好写清楚指针的具体实现的过程 谢谢谢谢

  • 写回答

3条回答 默认 最新

  • lx624909677 2016-03-28 08:46
    关注
     #include<iostream>
    using namespace std;
    const int N=6;
    typedef int DataType;//类型定义
    typedef struct node{ //单链表
          DataType data;
          struct node* next;
    }LinkedNode,*LinkList;
    /****由数组创建单链表****/
    LinkList CreateList(DataType a[N])
    {
        LinkedNode* ListHead=new LinkedNode();
        ListHead->data=a[0];
        ListHead->next=NULL;
        for(int i=N-1;i>=1;i--)
        {
            LinkedNode* p=new LinkedNode();
            p->data=a[i];
            p->next=ListHead->next;
            ListHead->next=p;
        }
        return ListHead;
    }
    /****输出单链表****/
    void PrintList(LinkList ListHead)
    {
        if(NULL==ListHead)cout<<"The List is empty!"<<endl;
        else
        {
            LinkedNode* p=ListHead;
            while(p!=NULL)
            {
                cout<<p->data<<" ";
                p=p->next;
            }
            cout<<endl;
        }
    }
    void ReverseList(LinkedNode* pCur,LinkList& ListHead)
    {
        if( (NULL==pCur)||(NULL==pCur->next) )
        {
            ListHead=pCur;
        }
        else
        {
            LinkedNode* pNext=pCur->next;
            ReverseList(pNext,ListHead); //递归逆置后继结点
            pNext->next=pCur;            //将后继结点指向当前结点。
            pCur->next=NULL;
        }
    }
    int main()
    {
        int a[N]={1,2,3,4,5,6}; 
        LinkedNode* list=CreateList(a);
        PrintList(list);
        LinkedNode*pTemp=list;
        ReverseList(pTemp,list);
        PrintList(list);
        return 0;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥100 有人会搭建GPT-J-6B框架吗?有偿
  • ¥15 求差集那个函数有问题,有无佬可以解决
  • ¥15 【提问】基于Invest的水源涵养
  • ¥20 微信网友居然可以通过vx号找到我绑的手机号
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名