合并线性表
来源:互联网 发布:宁波旅游 知乎 编辑:程序博客网 时间:2024/05/18 20:53
假设利用两个线性表LA和LB分别表示两个集合A和B,现要求一个新的集合A=A并B,这就要求对线性表LA扩大,将存在于线性表LB重而不存在于线性表LA中的元素插入到线性表LA中去。只要从线性表LB中依次取得每个数据元素,并依值在线性表LA重进行查访,若不存在,则插入之。
这里写代码片void union(List &La,List Lb){ //将所有在线性表L中但不在La中的数据元素插入到La中 La_len=ListLength(La);Lb_len=ListLength(Lb); //求线性表的长度 for(i=1;i<=Lb_len;i++){ GetElem(Lb,i,e); //取Lb中第i个数据元素赋给e if(!=LocateElem(La,e,equal))ListInsert(La,++La_len,e); //La中不存在和e相同的数据元素,则插入之} }//union//在顺序表L中查访是否存在和e相同的数据元素的最简便的方法是,令e和L中的数据元素逐个比较,基本操作是“进行两个元素之间的比较”,若L中存在和e相同的元素ai,则比较次数为i(1<=i<=L.length),否则为L.length,即算法LocateElem_Sq的时间复杂度O(L.length).由此,对于顺序表La和Lb而言,union的时间复杂度为O(La.length*Lb.length)。 int LocateElem_Sq(SqList L,ElemType e, Status (*compare)(ElemType,ElemType)){ //在顺序线性表中查找第1个值,与e满足compare()的元素的位序 //若找到,则返回在L中的位序,否则返回0 i=1; //i的初值为第1个元素的位序 p=L.elem; //p的初值为第1个元素的存储位置 while(i<=L.length&&!(*compare)(*p++,e))++i; if(i<=L.length)return i; else return 0; }//LocateRlrm_Sq
0 0
- 合并两个线性表
- 线性表合并
- 合并线性表
- 线性表合并
- 线性链表合并
- 合并两个线性表
- 线性表合并
- 合并两个线性表
- 线性表算法-合并
- 线性表的合并
- 线性表的合并
- 合并线性表
- 线性表合并
- 线性表的合并
- 合并两个线性表
- 线性表合并
- 线性表—线性表的合并
- 合并线性表(MergeList)
- SecureCRT 终端仿真工具软件说明
- 使用Spring(11)使用Spring进行面向切面编程(AOP)Schema-based AOP support
- git常用命令
- 成功编译RenderingPluginExample53的cpp项目的步骤
- Windows7下SVN的简单实用
- 合并线性表
- 用JQuery和angularjs分别实现两个盒子间按钮的跳转(第一版)
- python中的ord函数
- Spark连接外部数据源解读
- chrome字体变得很浅的解决办法
- PHP经典实例读书笔记--Web基础
- iOS开发调试技巧总结
- Volley之ImageLoader与NetworkImageView
- VC++6.0 Debug单步调试简单入门