第4周 项目3-单链表应用1
来源:互联网 发布:微软词典知乎 编辑:程序博客网 时间:2024/04/29 22:19
问题及代码:
/* *Copyright (c)2016,烟台大学计算机与控制工程学院 *All rights reserved. *文件名称:bigice.cbp *作 者:何大冰*完成日期:2016年9月29日 *版 本 号:v1.0 * *问题描述:设计一个算法,将一个带头结点的数据域依次为a1,a2,…,an(n≥3)的单链表的所有结点逆置,即第一个结 点的数据域变为an,…,最后一个结点的数据域为a1。实现这个算法,并完成测试。 *输入描述:无 *程序输出:整理后的链表 */ #include <stdio.h>#include <malloc.h>#include "linklist.h"void split(LinkList *&L,LinkList *&L1,LinkList *&L2){ LinkList *p=L->next,*q,*r1; //p指向第1个数据节点 L1=L; //L1利用原来L的头节点 r1=L1; //r1始终指向L1的尾节点 L2=(LinkList *)malloc(sizeof(LinkList)); //创建L2的头节点 L2->next=NULL; //置L2的指针域为NULL while (p!=NULL) { r1->next=p; //采用尾插法将*p(data值为ai)插入L1中 r1=p; p=p->next; //p移向下一个节点(data值为bi) q=p->next; //由于头插法修改p的next域,故用q保存*p的后继节点 p->next=L2->next; //采用头插法将*p插入L2中 L2->next=p; p=q; //p重新指向ai+1的节点 } r1->next=NULL; //尾节点next置空}int main(){ LinkList *L,*L1,*L2; int i; ElemType a[]= {1,2,3,4,5,6,7,8,9,10}; InitList(L); InitList(L1); InitList(L2); for(i=9; i>=0; i--) ListInsert(L, 1, a[i]); printf("L:"); DispList(L); printf("L->L1,L2\n"); split(L,L1,L2); printf("L1:"); DispList(L1); printf("L2:"); DispList(L2); DestroyList(L1); DestroyList(L2); return 0;}
运行结果:
知识点总结:
单链表的逆置。
心得体会:体会了单链表的应用,对单链表知识点的掌握更加完善了
0 0
- 第4周 项目3-单链表应用
- 第4周项目3 单链表应用
- 第4周项目3单链表应用
- 第4周项目3 单链表应用
- 第4周项目3 - 单链表应用(1)
- 第4周项目3-单链表应用(1)
- 第4周实践项目3 - 单链表应用(1)
- 第4周项目3-单链表应用(1)
- 第4周、项目3(1)—单链表应用-逆置
- 【第4周 项目3 - 单链表应用(1)】
- 第4周 项目3 - 单链表应用(1)
- 第4周 项目3-单链表应用(1)
- 第4周项目3 单链表应用(1)
- 第4周项目3 单链表应用(1)
- 第4周项目3单链表应用(1)
- 第4周项目3 - 单链表应用(1)
- 第4周项目3 - 单链表应用(1)
- 第4周项目3单链表的应用1
- Eclipse插件开发MavenArchetype
- JS转换HTML转义符
- 王朝 第五周 if
- 【Mybatis】使用Interceptor进行分页
- 第5周项目2 -建立链栈算法库
- 第4周 项目3-单链表应用1
- linux 面试题及答案整理
- C++ list——push_back()与insert()
- popupwindow的二级Listview的联动菜单、ListView形式的菜单、GridView形式的菜单的Util
- 定价相关的主要用户出口
- Android组件11—Notification
- eclipse swing开发
- HashMap
- XCode CrashLog符号化分析