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

报告相同问题?

悬赏问题

  • ¥20 搭建pt1000三线制高精度测温电路
  • ¥15 使用Jdk8自带的算法,和Jdk11自带的加密结果会一样吗,不一样的话有什么解决方案,Jdk不能升级的情况
  • ¥15 画两个图 python或R
  • ¥15 在线请求openmv与pixhawk 实现实时目标跟踪的具体通讯方法
  • ¥15 八路抢答器设计出现故障
  • ¥15 opencv 无法读取视频
  • ¥15 按键修改电子时钟,C51单片机
  • ¥60 Java中实现如何实现张量类,并用于图像处理(不运用其他科学计算库和图像处理库))
  • ¥20 5037端口被adb自己占了
  • ¥15 python:excel数据写入多个对应word文档