2 Star 0 Fork 0

彭梁华 / C语言数据结构代码仓库

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
LinearList.cpp 1.64 KB
一键复制 编辑 原始数据 按行查看 历史
deepwater 提交于 2023-03-18 08:42 . ###########
// Copyright[2023]<Peng Lianghua>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAXSIZE 100
#define ElemType int
#define Status int
// 顺序表的数据结构
typedef struct {
ElemType *elem;
int length;
} SqList;
// 初始化
void InitList(SqList &L) {
L.elem = new ElemType[MAXSIZE];
L.length = 0;
}
// 打印线性表
void PrintList(SqList L) {
printf("当前顺序表的所有元素:");
for (int i = 0; i < L.length; i++) {
printf("%d ", L.elem[i]);
}
printf("\n");
}
// 创建线性表
void InitList(SqList &L) {
int num, i;
printf("输入要输入元素的个数:");
scanf("%d", &num);
if (num < 0 || num > MAXSIZE) {
printf("输入正确的个数!\n");
}
for (i = 0; i < num; i++) {
printf("输入第%d个元素:", (i + 1));
scanf("%d", &(L.elem[i]));
L.length++;
}
}
// 合并二个无序线性表
void MergeList(SqList &A, SqList &B) {
int i, j = 0;
int m = A.length;
int n = B.length;
for (i = 0; i < n; i++) {
while (A.elem[j] != B.elem[i] &&
j < m) // 遍历A,直到找到等于B.elem[i]的元素或没找到才退出
{
j++;
}
if (j >= m) // 没找到,则插入该元素i到A并循环至B中的下个元素
{
A.elem[m] = B.elem[i];
A.length++;
m++;
}
}
}
int main() {
SqList A, B;
InitList(A);
InitList(B);
// 创建A,B两个线性表
printf("请输入集合A的元素:\n");
InitList(A);
printf("请输入集合B的元素:\n");
InitList(B);
// 合并A和B集合到A中
MergeList(A, B);
PrintList(A);
}
1
https://gitee.com/peng-lianghua/penglianghua.git
git@gitee.com:peng-lianghua/penglianghua.git
peng-lianghua
penglianghua
C语言数据结构代码仓库
master

搜索帮助