第四周--项目3单链表的应用(1)
2015-10-15 20:39
267 查看
* Copyright (c++) 2015 烟台大学计算机学院 * All right reserved. * 文件名称:p1.cpp * 作 者: 商文轲 * 完成日期:2015年10月15日 * 版 本 号:v1.9 * *问题描述:设计一个算法,将一个带头结点的数据域依次为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[]= {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; }
总结:充分利用头插法逆序,在纸上画出更容易理解。
相关文章推荐
- 转:C#中base关键字的几种用法
- basicAnimation移动图形
- android 判断网络连接的工具类
- 4000 函数学习
- 随手记, C回车换行,0x0d 0x0a,WINDOWS下fgetc()一次读入,即\n,LINUX下fgetc()需要分两次读入0x0d, 0x0a
- 黑马程序员——Java基础---面向对象(封装、继承、多态)
- 软件工程控制经验总结系列之一 - 软件工程控制总论
- 深入理解数据库磁盘存储(Disk Storage)
- Bellman-Ford||SPFA-POJ-2240-Arbitrage
- 程序员装逼指南
- IOS网络笔记--ASIHTTP类库的使用(上传和下载)
- Android 设计模式 之 观察者模式详解
- 1213 How Many Tables(简单并查集)
- XML Parser
- 面向对象2(3)
- 使用sqlyog学习mysql中怎样创建用户、数据库、表
- [移动运营必备]APP运营工具大全
- gem常用命令
- 上传文件
- 面向对象2(2)