首页 > 其他分享 >7-1 线性表A,B顺序存储合并

7-1 线性表A,B顺序存储合并

时间:2022-10-25 00:01:14浏览次数:77  
标签:线性表 int 合并 elem ++ length SqList -- 顺序存储

有两张非递增有序的线性表A,B,采用顺序存储结构,两张表合并用c表存,要求C为非递减有序的,然后删除C表中值相同的多余元素。元素类型为整型

#include<iostream>
#define Max 100
using namespace std;

typedef struct  
{
    int *elem;
 
   int length;
}SqList;

SqList input(SqList &L)
{
    L.elem = new int[Max];
    int a;
    int i = 0;
    cin>>a;
    while(a != -1)
    {
        if(L.elem[i-1] != a) //非递增有序的线性表A,删除C表中值相同的多余元素
          L.elem[i++] = a;
        cin>>a;
    }
    L.length = i;
    return L;
}
void add( SqList &a ,SqList &b , SqList &c)
{
    c.elem = new int [Max];
    c.length = 0;
    
    int i = a.length - 1;
    int j = b.length - 1;
    int k = 0;
    
    while(i>=0 && j>=0)
    {
        if(a.elem[i ] >  b.elem[j ])
        {
            c.elem[k++] = b.elem[j--];
        }
        else if(a.elem[i ] ==  b.elem[j ])
        {
             c.elem[k++] = b.elem[j--];
             i--;
        }
        else
        {
             c.elem[k++] = a.elem[i--];
        }
    }
    while(i>=0)
    {
        c.elem[k++] = a.elem[i--];
    }
     while(j>=0)
    {
        c.elem[k++] = b.elem[j--];
    }
    c.length = k;
    
}
void show(SqList &c)
{
    int  k = 1;
    cout<<c.elem[0];
    while( k < c.length )
    {
        cout<<","<<c.elem[ k++ ];
    }
    
}
int main()
{
    SqList A,B,C;
    input(A);
    input(B);
    add(A,B,C);
    show(C);
    return 0;
}

 

标签:线性表,int,合并,elem,++,length,SqList,--,顺序存储
From: https://www.cnblogs.com/fan-wang/p/16823520.html

相关文章

  • 为Fat-AAR增加多productFlavors支持,并支持AGP7,实现合并AAR的Gradle插件
    AndroidAarPacker仓库地址MaYiFei1995/AndroidAarPacker问题之前项目一直在使用cpdroid/fat-aar合并多个本地的AAR和JAR包,也专门进行过AGP的升级,但仍然无法满足根据prod......
  • P1880 [NOI1995] 石子合并 (区间DP)
    [NOI1995]石子合并题目描述在一个圆形操场的四周摆放\(N\)堆石子,现要将石子有次序地合并成一堆,规定每次只能选相邻的\(2\)堆合并成新的一堆,并将新的一堆的石子数,记......
  • #yyds干货盘点# LeetCode 腾讯精选练习 50 题:合并两个有序链表
    题目:将两个升序链表合并为一个新的升序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例1:输入:l1=[1,2,4],l2=[1,3,4]输出:[1,1,2,3,4,4]示例2:......
  • Python&JS宏 实现保留样式合并表格后拆分
    ......
  • 23. 合并K个升序链表
    给你一个链表数组,每个链表都已经按升序排列。请你将所有链表合并到一个升序链表中,返回合并后的链表。 示例1:输入:lists=[[1,4,5],[1,3,4],[2,6]]输出:[1,1,2,3,4,4,5......
  • Leetcode第1768题:交替合并字符串(Merge Strings Alternately)
    解题思路:使用两个指针i和j分别指向两个字符串首位。循环中一次进行如下判断及操作:如果i没有超出word1的长度,就将word[i]加入返回结果中。然后i指针后移一位。如果j没有......
  • Unity-合并模型贴图
    需求项目需要做个工具,用于合并模型贴图,以此可以省掉贴图尺寸为了补足2的次方而多出来的多余空白像素。过程平铺式编码,相当于一个Demo,把几个没把握的主要问题解决,得出......
  • 交替合并字符串
    题目给你两个字符串word1和word2。请你从word1开始,通过交替添加字母来合并字符串。如果一个字符串比另一个字符串长,就将多出来的字母追加到合并后字符串的末尾。返回......
  • 1768. 交替合并字符串
    给你两个字符串word1和word2。请你从word1开始,通过交替添加字母来合并字符串。如果一个字符串比另一个字符串长,就将多出来的字母追加到合并后字符串的末尾。返回合......
  • 1768. 交替合并字符串
    1768.交替合并字符串给你两个字符串word1和word2。请你从word1开始,通过交替添加字母来合并字符串。如果一个字符串比另一个字符串长,就将多出来的字母追加到合并后......