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

来源:互联网 发布:mysql 多个字段排序 编辑:程序博客网 时间:2024/06/08 09:22

问题及代码:

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


#include "linklist.h"  void Reverse(LinkList *&L)  {      LinkList *p=L->next,*q;      L->next=NULL;      while (p!=NULL)     //扫描所有的结点      {          q=p->next;      //让q指向*p结点的下一个结点          p->next=L->next;    //总是将*p结点作为第一个数据结点          L->next=p;          p=q;            //让p指向下一个结点      }  }    int main()  {      LinkList *L;      ElemType a[]= {2,0,1,6,0,9,1,9};      CreateListR(L,a,8);      printf("L:");      DispList(L);      Reverse(L);      printf("逆置后L:");      DispList(L);      DestroyList(L);      return 0;  }  

运行结果:


知识点总结:

所谓的逆置其实就是利用了头插法。

学习心得:

通过链表算法可以解决很多问题。


0 0
原创粉丝点击