我是靠谱客的博主 美丽斑马,最近开发中收集的这篇文章主要介绍941: 有序顺序表的合并操作的实现,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

题目描述已知两非递减的顺序线性表,要求合并成一个新的非递减顺序线性表。(测试数据为整型)输入输入包含四行,第一行为自然数n,表示第一个非递减顺序线性表的长度;
第二行为n个自然数构成的非递减顺序线性表;
第三行为自然数m,表示第二个非递减顺序线性表的长度;
第四行为m个自然数构成的非递减顺序线性表。
输出输出:用一行输出合并后的非递减顺序线性表,各数之间用一个空格隔开。
样例输入复制2
1 3
3
2 3 6
样例输出复制1 2 3 3 6
代码 C语言实现
#include<stdio.h>
#include<stdlib.h>
typedef struct splist
{
int data[100];
int length;
}Splist;
void Creat(Splist *&L,int a[],int n)
{
L=(Splist *)malloc(sizeof(Splist));
for (int i=0;i<n;i++)
{
L->data[i]=a[i];
}
L->length=n;
}
void Input(int a[],int num)
{
for (int i=0;i<num;i++)
{
scanf ("%d",&a[i]);
}
}
void Add(Splist *A,Splist *B,Splist *&H)
{
H=(Splist *)malloc(sizeof(Splist));
H->length=A->length+B->length;
for (int i=0;ilength;i++)
{
H->data[i]=A->data[i];
}
for (int i=A->length,j=0;jlength,ilength;i++,j++)
{
H->data[i]=B->data[j];
}
for (int i=0;ilength;i++)
{
for (int j=i+1;jlength;j++)
{
if (H->data[i]>H->data[j])
{
int temp=H->data[i];
H->data[i]=H->data[j];
H->data[j]=temp;
}
}
}
}
int Printf(Splist *H)
{
for (int i=0;ilength;i++)
{
printf ("%d “,H->data[i]);
}
}
int main()
{
int num1;
scanf (”%d",&num1);
int a[num1];
Input(a,num1);
int num2;
scanf ("%d",&num2);
int b[num2];
Input(b,num2);
Splist *A,*B;
Creat(A,a,num1);
Creat(B,b,num2);
Splist *H;
Add(A,B,H);
Printf(H);
return 0;
}

最后

以上就是美丽斑马为你收集整理的941: 有序顺序表的合并操作的实现的全部内容,希望文章能够帮你解决941: 有序顺序表的合并操作的实现所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(35)

评论列表共有 0 条评论

立即
投稿
返回
顶部