流星划过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条)

报告相同问题?

悬赏问题

  • ¥15 Python爬取指定微博话题下的内容,保存为txt
  • ¥15 vue2登录调用后端接口如何实现
  • ¥65 永磁型步进电机PID算法
  • ¥15 sqlite 附加(attach database)加密数据库时,返回26是什么原因呢?
  • ¥88 找成都本地经验丰富懂小程序开发的技术大咖
  • ¥15 如何处理复杂数据表格的除法运算
  • ¥15 如何用stc8h1k08的片子做485数据透传的功能?(关键词-串口)
  • ¥15 有兄弟姐妹会用word插图功能制作类似citespace的图片吗?
  • ¥15 latex怎么处理论文引理引用参考文献
  • ¥15 请教:如何用postman调用本地虚拟机区块链接上的合约?