C语言合并两个集合(L,L1) 将L1中不在L中的元素插入到L线性表中

void main()
{

Sqlist L,L1;

InitList(&L);
InitList(&L1);

ListInsert(&L, 1, 2);
ListInsert(&L, 2, 3);
ListInsert(&L, 1, 1);

ListInsert(&L1,1,1);
ListInsert(&L1,2,2);
ListInsert(&L1,3,4);

for (int i = 0; i <L1.length; i++)
{
int flag = 0;

for (int j = 0; j < L.length; j++)
{
if (L1.elem[i] == L.elem[j]) {
flag = 1;
break;
}

}
if (!flag) {
ListInsert(&L, (L.length + 1), L1.elem[i]);
}

}
//输出顺序链表中的所有值
for (int i = 0; i < L.length; i++)
{
printf("元素的第%d值为%d\n", i + 1, L.elem[i]);

}
//int del_e = 0;

//ListDelete(&L, 3, del_e);

//printf("删除的元素为%d\n", del_e);

//printf("输出删除后的线性表\n");

//输出顺序链表中的所有值
/*for (int i = 0; i < L.length; i++)
{
printf("元素的第%d值为%d\n", i + 1, L.elem[i]);

}*/

}

该算法的时间复杂度f(n2)

时间: 2024-10-25 09:17:48

C语言合并两个集合(L,L1) 将L1中不在L中的元素插入到L线性表中的相关文章

go语言合并两个数组

https://stackoverflow.com/questions/16248241/concatenate-two-slices-in-go Add dots after the second slice: //---------------------------vvv append([]int{1,2}, []int{3,4}...) 原文地址:https://www.cnblogs.com/oxspirt/p/11059606.html

数据结构中线性表的基本操作-合并两个线性表-依照元素升序排列

#include<iostream> #include<stdlib.h> #define LIST_INIT_SIZE 10/*线性表初始长度*/ #define LIST_CREATENT 2/*每次的增量*/ typedef int ElemType; using namespace std; typedef struct SqList/*线性表的数据结构定义*/ { ElemType *elem;/*线性表基址*/ int length;/*当前线性表所含的元素个数*/ i

数据结构中线性表的基本操作-合并两个线性表

#include<iostream> #include<stdlib.h> #define LIST_INIT_SIZE 10/*线性表初始长度*/ #define LIST_CREATENT 2/*每次的增量*/ typedef int ElemType; using namespace std; typedef struct SqList/*线性表的数据结构定义*/ { ElemType *elem;/*线性表基址*/ int length;/*当前线性表所含的元素个数*/ i

详谈线性表的有关操作(Java、C两种语言)

    之前在学习线性表一章的时候,有些地方都是比较含糊的带过,只是把一些比较难理解的地方花了好长时间才明白....然后写出代码,存在博客上面.从今天开始,将重新把数据结构这本书走一遍,用C和Java两种语言,尽量把每个部分都可以用代码实现一遍,使印象更加深刻,也算是重新学习一下C语言啦~~.而且现在新学期开始学Oracle啦,也会把一些学习过程中的代码以及重点难点记录下来,希望大家会关注哦~~    线性表的概念都在之前的文章有提到,今天来说一下有关线性表的具体操作(数组实现),分为以下几个部

POJ1703并查集(区分两个集合)

题意:输入n,m.n个人,m个规定/询问.一共有两个集合,A:询问a,b是否在同一个集合?D:表明a,b不在同一个集合.输出有三种,不在同一集合,在同一集合,不确定. 解析:其实有点离散化的意思.传统并查集是合并两个集合,而这个题是分开两个集合.那么可以这么做,想办法进行合并操作.输入a,b,a,b没有了关系,但是可以规定,a+n,b属同一集合,a,b+n属于同一集合.即,n右边a+n的那些和b放入同一集合,n右边b+n的那些和a放入同一集合,这样a,b就撇开了关系.就可以进行join()操作了

算法题:合并两个有序的链表

说明:本文仅供学习交流,转载请标明出处,欢迎转载! 题目:已知有两个有序的单链表,其头指针分别为head1和head2,实现将这两个链表合并的函数: Node* ListMerge(Node *head1,Node *head2) 这个算法很像我们排序算法中的归并排序,只能说“很像”,因为思想是一样的,但是这个与归并排序还是有区别的,区别如下:      1.归并排序是针对有序数组,而这里是有序链表:        2.归并排序排序的时间复杂度为o(nlogn),而这里的时间复杂度最坏情况下为O

算法题:合并两个有序列表

说明:这篇文章是学习交流,转载请注明出处.欢迎转载! 题目:已知有两个有序的单链表,其头指针分别为head1和head2.实现将这两个链表合并的函数: Node* ListMerge(Node *head1,Node *head2) 这个算法非常像我们排序算法中的归并排序.仅仅能说"非常像",由于思想是一样的,可是这个与归并排序还是有差别的.差别例如以下:      1.归并排序是针对有序数组.而这里是有序链表:        2.归并排序排序的时间复杂度为o(nlogn),而这里的时

动态分配的顺序线性表的十五种操作—C语言实现

线性表 定义:是最常用的,也是最简单的数据结构,是长度为n个数据元素的有序的序列. 含有大量记录的线性表叫文件 记录:稍微复杂的线性表里,数据元素为若干个数据项组成,这时把一个数据元素叫记录 结构特点:在非空有限的条件下,存在唯一的一个表头结点,唯一的一个表尾结点,除去第一个元素之外,每个数据元素都只有一个前驱,除去最后一个元素之外,每一个数据元素都只有一个后继. 注意:线性表中的数据元素可以是各种各样的,但同一线性表中的元素必定具有相同特性(属于同一数据对象,类似数组).线性表的数据元素间有序

线性表顺序存储结构的c语言实现

线性表顺序存储结构用C实现的操作 <1>声明一个线性表的顺序存储结构 <2> 初始化顺序线性表 <3>判断是否为空 <4>清空列表 <5>返回当前长度(线性表内元素个数) <6>返回L中第i个数据元素的值,注意i是指位置,第1个位置的数组是从0开始 <7>返回L中第1个与e满足关系的数据元素的位序.若这样的数据元素不存在,则返回值为0 <8>在L中第i个位置之前插入新的数据元素e,L的长度加1 <9>