#include<iostream>
#include<cstdlib>//C++动态分配存储空间
using namespace std;
#define OK 1
#define ERROR 0
#define MAXSIZE 100
typedef int Elemtype;
typedef int Status;
//顺序表的存储结构,结构体类型
typedef struct
{
Elemtype* elem;//动态开辟存储空间
int length;//当前数组的长度
}Sqlist;//顺序表结构类型为Sqlist
Status Initlist(Sqlist& L);//初始化顺序表
Status Createlist(Sqlist& L, int n);//创建顺序表
Status Getlist(Sqlist L, int i, Elemtype& e);//顺序表取值
Status Locatelist(Sqlist L, Elemtype e);//顺序表查找值
Status Insertlist(Sqlist& L, Elemtype e, int m);//顺序表插入值
Status Mergelist(Sqlist& La, Sqlist Lb);//将所有在线性表Lb中但是不在La中的元素插入到La中
Status Printlist(Sqlist L);//顺序表打印
int main(void)
{
Sqlist La, Lb;
Initlist(La);
Initlist(Lb);
int a = 0;
int b = 0;
cout << "输入创建顺序表La的长度:";
cin >> a;
Createlist(La, a);
cout << "输入创建顺序表Lb的长度:";
cin >> b;
Createlist(Lb, b);
Mergelist(La, Lb);
Printlist(La);
return 0;
}
Status Initlist(Sqlist& L)//初始化顺序表
{
L.elem = new Elemtype[MAXSIZE];//为顺序表分配一个数组空间
if (!L.elem) exit(OVERFLOW);
L.length = 0;
return OK;
}
Status Createlist(Sqlist& L, int n)//创建顺序表
{
Elemtype e;
cout << "输入顺序表的数据:";
for (int i = 0; i < n; i++)
{
cin >> e;
L.elem[i] = e;
L.length++;
}
cout << "创建顺序表成功。" << endl;
return OK;
}
Status Getlist(Sqlist L, int i, Elemtype& e)//顺序表取值
{
if (i<1 || i>L.length) return ERROR;
e = L.elem[i - 1];
return OK;
}
Status Locatelist(Sqlist L, Elemtype e)//顺序表查找值
{
for (int i = 0; i < L.length; i++)
{
if (L.elem[i] == e) return i + 1;
}
return ERROR;//不在L中返回O
}
Status Insertlist(Sqlist& L, Elemtype e, int m)//顺序表插入值
{
if (m<1 || m>(L.length + 1)) return ERROR;
if (L.length == MAXSIZE) return ERROR;
for (int i = L.length-1; i >= m - 1; i--)
{
L.elem[i + 1] = L.elem[i];
}
L.elem[m - 1] = e;
++L.length;
return OK;
}
Status Mergelist(Sqlist& La, Sqlist Lb)//将所有在线性表Lb中但是不在La中的元素插入到La中
{
int m = La.length;
int n = Lb.length;
Elemtype e;
for (int i = 1; i <= n; i++)
{
Getlist(Lb, i, e);//将Lb中的元素赋值给元素k
if (!Locatelist(La, e))//判断在La中能否查找到Lb的元素k(不能查找到)
{
Insertlist(La,e,++m);//在La尾部插入Lb的元素k
}
}
return OK;
}
Status Printlist(Sqlist L)//顺序表打印
{
cout << "顺序表的值顺序输出为:";
for (int i = 0; i < L.length; i++)
{
cout << L.elem[i] << " ";
}
return OK;
}

C++实现线性表-顺序表的合并操作代码的更多相关文章

  1. 【数据结构】线性表&&顺序表详解和代码实例

    喜欢的话可以扫码关注我们的公众号哦,更多精彩尽在微信公众号[程序猿声] 01 预备知识 1.0 什么是线性表? 线性表(List)是零个或者多个数据元素的有限序列. 首先它是一个序列.里面的元素是有顺 ...

  2. 线性表——顺序表的实现与讲解(C++描述)

    线性表 引言 新生安排体检,为了 便管理与统一数据,学校特地规定了排队的方式,即按照学号排队,谁在前谁在后,这都是规定好的,所以谁在谁不在,都是非常方便统计的,同学们就像被一条线(学号)联系起来了,这 ...

  3. C语言 线性表 顺序表结构 实现

    一个能够自动扩容的顺序表 ArrList (GCC编译). #include <stdio.h> #include <stdlib.h> #include <string ...

  4. JAVA实现具有迭代器的线性表(顺序表)

    1,先了解下JAVA类库中的迭代器:JAVA提供了两种基本类型的迭代器,分别用两个接口来表示:Iterator<T>,ListIterator<T>.其中,Iterator&l ...

  5. 线性表&顺序线性表

    第二章 线性表 参考文献:[数据结构(C语言版)].严蔚敏 本篇章仅为个人学习数据结构的笔记,不做任何用途. 2.1 线性结构的特点 (1). 存在唯一的一个被称为"第一个"的数据 ...

  6. 线性表之顺序表(C语言实现)

    线性表是从数据元素的逻辑结构上定义的. 这种数据元素的逻辑结构的特征如下: 1.除开第一个和最后一个元素之外.所有元素都有一个前驱元素和后继元素. 2.第一个元素无前驱元素,但有后继元素. 3.最后一 ...

  7. [C++]线性链表之顺序表<二>

    /*   @content 线性链表之顺序表   @date 2017-3-21 1:06   @author Johnny Zen  */ /* 线性表     顺序表     链式表[带头指针/不 ...

  8. 线性表中顺序表的的理解和实现(java)

    线性表的顺序表示指的是用一组地址连续的存储单元以此存储线性表的数据元素,这种表示也称作线性表的顺序存储结构或顺序映像.通常,称这种存储结构的线性表为顺序表.特点是:逻辑上相邻的数据元素,其物理次序上也 ...

  9. 数据结构----线性表顺序和链式结构的使用(c)

    PS:在学习数据结构之前,我相信很多博友也都学习过一些语言,比如说java,c语言,c++,web等,我们之前用的一些方法大都是封装好的,就java而言,里面使用了大量的封装好的方法,一些算法也大都写 ...

  10. PHP数据结构之二 线性表中的顺序表的PHP实现

    线性表 (一)基本特点:最基本.最简单.最常用的一种数据结构 在这种结构中: 1.存在一个唯一的被称为“第一个”的数据元素: 2.存在一个唯一的被称为“最后一个”的数据元素: 3.除第一个元素外,每个 ...

随机推荐

  1. 《黑马旅游网》综合案例六 BaseServlet 抽取

    BaseServlet抽取 减少Servlet的数量,现在是一个功能一个Servlet,将其优化为一个模块一个Servlet, 相当于在数据库中一张表对应一个Servlet,在Servlet中提供不同 ...

  2. 青少年CTF-Hanser!![wp]

    一 题目描述 二 解题步骤 1. hanser.txt A‌‌​‎‏​‌​‎‏​‏‏‌​‎​‍‌​‍‍​‎‏​‏‏‌​‌‎​‌‏​‏‏‌​‍‏​‎​‏‎​‌‎​‎‍​‍‎​‏‎‎‏nemḍiq-nni ...

  3. ROS自动检测安装功能依赖包

    cd ~/ros_ws/src sudo rosdepc init & rosdepc update cd .. rosdepc install -i --from-path src --ro ...

  4. QSS学习

    padding:内边距 margin:外边距用法

  5. CCF 201903-2 二十四点

    #include <iostream> #include <bits/stdc++.h> #include <string> using namespace std ...

  6. Spark 中三种数据处理对象的区别: RDD-Dataset-Dataframe

    1,对比表:   RDD Dataframe Dataset 版本 1.0 1.3 1.6 描述 分布式数据集合 行列化的分布式数据集合  RDD 和 DataFrame的结合 数据格式 结构化和非结 ...

  7. mybatis-plus 时间查询

    QueryWrapper userquery= new QueryWrapper<>(); user.and(true,wrapper -> wrapper.ge("CRE ...

  8. jsp <img src="“> src 相对路径的问题

    图片所在路径 jsp所在路径 调用处 相对路径 以调用处JSP位置为参考 每一个../代表上一级  4个 正好找到到webRoot 目录拼接后 webRoot /kernel/_static/img/ ...

  9. 虚拟内存跟物理内存之间的映射mmap\munmap

    #include <stdio.h> #include <sys/mman.h> int main(void) { /* * 创建虚拟内存的映射 * void *mmap (v ...

  10. eclipse设置UTF-8(字符编码集)所有方式

    一.全部方式 1.修改workspace编码 windows->preferences->gengral->workspace 选择other->UTF-8.  2.修改Con ...