第4周项目3 - 单链表应用(1)

**

问题及代码:

**

    /* Copyright (c)2015,烟台大学计算机与控制工程学院 All rights reserved. 文件名称:项目3--单链表应用(1).cpp 作 者:孙翰文 完成日期:2015年10月12日 版 本 号:v1.0 问题描述:1、设计一个算法,将一个带头结点的数据域依次为a1,a2,…,an(n≥3)的单链表的所有结点逆置, 即第一个结点的数据域变为an,…,最后一个结点的数据域为a1。实现这个算法,并完成测试。 输入描述:若干数据 。 程序输出:链表中的数据及逆序拍好后的数据。 */  

算法库

    #include"linklist.h" 
    int main()  
    {  
        linklist *L;  
        ElemType a[]= {1,3,5,7, 2,4,8,10};  
        CreateListR(L,a,8);  
        printf("L:");  
        DispList(L);  
        Reverse(L);  
        printf("逆置后L: ");  
        DispList(L);  
        DestroyList(L);  
        return 0;  
    }  
    void Reverse(linklist *l)  
    {  
        linklist *p,*q;  
        p=l->next;  
        l->next=NULL;  
        while(p!=NULL)  
        {  
            q=p->next;  
            p->next=l->next;  
            l->next=p;  
            p=q;  
        }  

    }  

**

运行结果:

**
第4周项目3 - 单链表应用(1)_第1张图片

**

知识点总结:

**

链表的逆置。

你可能感兴趣的:(第4周项目3 - 单链表应用(1))