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

来源:互联网 发布:打开1433端口命令 编辑:程序博客网 时间:2024/05/16 07:32

问题及代码:

/* * Copyright (c)2016,烟台大学计算机与控制工程学院 * All rights reserved. * 文件名称:项目3.cpp * 作    者:陈哲 * 完成日期:2016年9月22日 * 版 本 号:v1.0  *问题描述:设计一个算法,将一个带头结点的数据域依次为a1,a2,…,an(n≥3)          的单链表的所有结点逆置,即第一个结点的数据域变为an,…,最后一个          结点的数据域为a1。实现这个算法,并完成测试。          提示:实现算法时,可以设计下面的函数:void Reverse(LinkList *&L)*输入描述:无 *程序输出:输出逆置的链表 */  


linklist.h和linklist.cpp详见第四周项目2--建立单链表算法库

 

main,cpp

#include "linklist.h"void Reverse(LinkList *&L){LinkList *p=L->next,*q;      L->next=NULL; while(p!=NULL){q=p->next;p->next =L->next;L->next=p;p=q;}}int main(){    LinkList *L;    ElemType a[8]= {7, 9, 8, 2, 0, 4, 6, 3};/*头插法建立    CreateListF(L, a, 8);    printf("头插法建表结果:");    DispList(L);*///尾插法建立    CreateListR(L, a, 8);    printf("尾插法建表结果:");    DispList(L);    Reverse(L);printf("逆置后的链表:");DispList(L);    printf("销毁单链表\n");      DestroyList(L);      return 0;}


运行结果:

知识点总结:

单链表逆置

学习心得:

运用单链表头插法和尾插法的特点实现了节点逆置,很方便。

 

 

0 0