线性表求与运算
来源:互联网 发布:android程序员的简历 编辑:程序博客网 时间:2024/06/13 16:43
题目描述:
假设利用两个线性表LA和LB分别表示集合A和B(即线性表中的数据元素即为集合中的成员),现要求一个新的集合A=AUB
解题思路:
扩大线性表LA,将存在于线性表LB中而不存在线性表LA中的数据元素插入到线性表LA中去。只要从线性表LB中依次取得每个数据元素,并依值在线性表LA中访问,若不存在则插入之。
使用顺序表实现的代码如下:
#include<iostream>using namespace std;struct SqList{int *data;//存储空间基地址 int length;//当前长度 int listsize;//当前分配的存储容量 }; void Show(SqList *L){for(int i=0;i<L->length;i++)cout<<L->data[i]<<" ";cout<<endl;}bool Locate(SqList *L,int x){for(int i=0;i<L->length;i++){if(L->data[i]==x)return true;}return false;}void Insert(SqList *L,int x){int len = L->length;L->data[len] = x;if(L->length+1<=L->listsize)L->length++;} //核心函数 void Union(SqList *LA,SqList *LB){int lb_len = LB->length;for(int i=0;i<lb_len;i++){if(!Locate(LA,LB->data[i])){Insert(LA,LB->data[i]);}}}int main(){int a[20]={1,2,3,4,5,6,7,8,9,10};int b[7]={1,2,12,34,7,56,22};SqList LA,LB;LA.data = a;LA.length = 10;LA.listsize = 20;LB.data = b;LB.length = 7;LB.listsize = 7;cout<<"LA:";Show(&LA);cout<<"LB:";Show(&LB);Union(&LA,&LB);cout<<"Union:";Show(&LA);return 0;}核心代码为Union函数。
运行结果为:
LA: 1 2 3 4 5 6 7 8 9 10
LB: 1 2 12 34 7 56 22
Union: 1 2 3 4 5 6 7 8 9 10 12 34 56 22
1 0
- 线性表求与运算
- 线性表归并运算
- 线性表的线性存储及其运算
- 补码与求补运算
- 乘除与求余运算
- 补码与求补运算
- 数据结构-线性表-其他运算
- 线性表的基本运算
- 线性表的基本运算
- 3.数据结构--线性表之一元多项式的加法与乘法运算
- Java 除与求余运算
- 《数据结构学习与实验指导》3-5:求链式线性表的倒数第K项
- 数据结构 线性链表的运算
- 多项式运算线性链表的应用
- 2.1线性表及其基本运算
- 数据结构--线性表--一元多项式加法运算
- 特殊的线性表-串及其运算
- 数据结构--线性表(加入一些运算)
- VC6.0 显示代码行号
- 如何提高WP程序发布文章的质量
- Linux下,创建和删除软、硬链接
- 升级到XCode5.1报错的解决办法
- java concurrent 探秘
- 线性表求与运算
- uva 10239 - The Book-shelver's Problem(记忆化搜索)
- 动态规划-排列组合
- 黑马程序员---交通灯
- mysql主从单向和双向备份配置
- C# 集合类 Array,Arraylist,List,Hashtable,Dictionary等比较
- 脊梁
- 关于MFC的一些数据之间的转换与提取
- 【C++】PAT(advanced level)1040. Longest Symmetric String (25)