第四周项目5-循环双链表应用
2015-11-06 08:49
363 查看
Copyright (c) 2015,烟台大学计算机学院
All rights reserved,
文件名称:idea.cpp
作者:王阳
完成日期:2015年11月06日
All rights reserved,
文件名称:idea.cpp
作者:王阳
完成日期:2015年11月06日
#include <stdio.h> #include <malloc.h> #include "cdlinklist.h" void Insert(CDLinkList *&ha, CDLinkList *&hb,int i) { CDLinkList *p=ha->next,*q; int lena=1,j=1; while (p->next!=ha) //求出ha的长度lena { lena++; p=p->next; } if (i==0) //将hb的所有数据结点插入到ha的头结点和第1个数据结点之间 { p=hb->prior; //p指向hb的最后一个结点/ p->next=ha->next; //将*p链到ha的第1个数据结点前面 ha->next->prior=p; ha->next=hb->next; hb->next->prior=ha; //将ha头结点与hb的第1个数据结点链起来 } else if (i<lena) //将hb插入到ha中间 { p=ha->next; while (j<i) //在ha中查找第i个结点*p { j++; p=p->next; } q=p->next; //q指向*p结点的后继结点/ p->next=hb->next; //hb->prior指向hb的最后一个结点 hb->next->prior=p; hb->prior->next=q; q->prior=hb->prior; } else //将hb链到ha之后 { ha->prior->next=hb->next; //ha->prior指向ha的最后一个结点 hb->next->prior=ha->prior; hb->prior->next=ha; ha->prior=hb->prior; } free(hb); //释放hb头结点 } int main() { CDLinkList *HA, *HB; ElemType ha[]= {0, 1, 2, 3, 4, 5, 6, 7 ,8, 9}; InitList(HA); CreateListF(HA, ha, 10); ElemType hb[]= {100, 200, 300, 400, 500}; InitList(HB); CreateListF(HB, hb, 5); printf("HA: "); DispList(HA); printf("HB: "); DispList(HB); Insert(HA, HB, 0); //将0改为其他值,多次运行程序完成测试 printf("new HA: "); DispList(HA); DestroyList(HA); return 0; }
相关文章推荐
- “万能”的野蛮人和“有界”的粉丝经济
- 集算器如何优化SQL计算(2)分组
- 第10周项目1二叉树算法库
- 第十周 项目1 二叉树算法库
- 第十周实践项目2 - 二叉树遍历的递归算法
- 剑指Offer-题14:调整数组顺序使奇数位于偶数之前
- java基础之Scanner close方法
- 第十周--项目3用二叉树遍历思想解决问题(1)(2)
- 黑马程序员---自学随堂笔记----异常
- 细说Cocos2d-JS——从项目构造说起
- weblogic配置路径
- uva 1152 ——4 Values whose Sum is 0
- 采用 audio 和 embed 实现浏览器的兼容性页音频播放
- 第十周项目3--利用二叉树遍历思想解决问题(2)
- Linux 中的静态库和动态库简介及生成过程示例
- 网友整理的EasyUI扩展库
- 第十周实践项目1 - 二叉树算法库
- 工作周报066
- 第10周上机实践项目3 - 利用二叉树遍历思想解决问题
- web性能测试基本性能指标