线性表中顺序表的合并
来源:互联网 发布:非洲的基础网络情况 编辑:程序博客网 时间:2024/06/11 05:30
对两个顺序表进行合并,算法的复杂度为O(La.size+Lb.size)。
已知:
顺序线性表La和Lb的元素按值非递减排列
归并La和Lb得到的顺序线性表Lc,Lc的元素也按值非递减排列。
代码定义:
void mergeList(SeqList *La,SeqList *Lb,SeqList *Lc){ Lc->capacity = La->size + Lb->size; Lc->base = (ElemType *)malloc(Lc->capacity*sizeof(ElemType)); assert(Lc->base != NULL); int ia=0; int ib=0; int ic=0; while(ia <La->size && ib< Lb->size) { if(La->base[ia] <= Lb->base[ib]) Lc->base[ic++] = La->base[ia++]; else Lc->base[ic++] = Lb->base[ib++]; } while(ia <La->size) Lc->base[ic++] = La->base[ia++]; //插入La的剩余元素 while(ib <Lb->size) Lc->base[ic++] = Lb->base[ib++]; //插入Lb的剩余元素 Lc->size = ic;}
调用:
int main(){ ElemType item; SeqList myList; InitSeqList(&myList); SeqList youList; InitSeqList(&youList); SeqList weList; push_back(&myList,1); push_back(&myList,3); push_back(&myList,5); push_back(&myList,7); push_back(&youList,2); push_back(&youList,4); push_back(&youList,6); push_back(&youList,8); push_back(&youList,9); mergeList(&myList,&youList,&weList); show_list(&weList); destroy(&myList);//销毁(程序退出前) destroy(&youList);//销毁(程序退出前) destroy(&weList);//销毁(程序退出前) return 0;
输出:
1 2 3 4 5 6 7 8 9
阅读全文
0 0
- 线性表中顺序表的合并
- 线性表算法2.2:顺序表的合并
- 合并两个顺序存储结构的线性表...
- 【数据结构】顺序线性表的插入、删除、合并实现
- 数据结构 线性表 顺序表合并
- 线性表的合并
- 线性表的合并
- 线性表的合并
- 数据结构 第二章 线性表(3)顺序线性表合并
- 线性表的顺序存储 及连个线性表的合并
- 【数据结构】-线性表-顺序表-1324: 算法2-2:有序线性表的有序合并
- 顺序表的合并
- 顺序表的合并
- 顺序表的合并
- 顺序表的合并
- 线性表—线性表的合并
- 两个线性表的合并
- 有序线性表的合并
- hdu2087剪花布条+hdu3746Cyclic Nacklace 【kmp复习】
- C# 发送邮件
- 坐标的转换
- 开启php-fpm php错误日志
- 消息队列的两种模式
- 线性表中顺序表的合并
- ABP官方文档(十七)【仓储】
- Java并发编程:Java内存模型和volatile关键字解析
- python (一)
- Apache-Ant
- windows Server 2008 r2部署JSP项目
- Red and Black (POJ 1979,深度优先搜索)
- larvael学习之Eloquent
- Thinkphp 结合kibana 来监测设备(监测车辆情况的设备)是否还在正常运行