⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 排序连接顺序表.cpp

📁 共有10个文件代码
💻 CPP
字号:
#include<iostream.h>
#include<iomanip.h>
#define MaxLen 50     //顺序表中最多元素个数
typedef int elemtype;
typedef elemtype sqlist[MaxLen];
int create(sqlist A)        //创建顺序表
{ 
	int i,n;
	cout<<"创建顺序表"<<endl;
	cout<<"输入元素个数:";
	cin>>n;
	cout<<"输入这n个元素值:";
	for(i=0;i<n;i++)
		cin>>A[i];
	return n;
}
void disp(sqlist A,int n)    //输出一个顺序表
{
	int i;
	cout<<"输出顺序表"<<endl<<" ";
	if(n==0)
		cout<<"空表";
	for(i=0;i<n;i++)
		cout<<A[i]<<" ";
	cout<<endl;
}

int combl(sqlist A,int na,sqlist B,int nb)
{
	int n=na,m=0;
	while(m<nb)
		if(n==0||A[n-1]<B[m])
		{
			A[n+nb-m-1]=B[m];             //说明B[m]是第n+nb-m大的元素
			m++;
		}
		else
		{
			A[n+nb-m-1]=A[n-1];           //说明A[n-1]是第n+nb-m大的元素
			n--;
		}
		return na+nb;
}
void sort(sqlist A,int k)
{
	int i,j,t,minval,minidx;
	for(i=0;i<k;i++)
	{
		minval=A[i];             //存储A[i+1]至A[i]之间的最小数
		minidx=i;                //存储A[i+1]至A[i]之间的最小数的下标
		for(j=i+1;j<k;j++)
			if(A[j]<minval)
			{
				minval=A[j];
				minidx=j;
			}
			if(minidx!=i)
			{
				t=A[i];        //将A[i]与A[minidx]进行交换
				A[i]=A[minidx];
				A[minidx]=t;
			}
	}
}
void main()
{
	sqlist A,B;
	int na,nb;
	na=create(A);
	disp(A,na);
	nb=create(B);
	disp(B,nb);
	na=combl(A,na,B,nb);
	sort(A,na);
	cout<<"经过排序连接后的顺序表为:"<<endl;
	for(int s=0;s<na;s++)
		cout<<setw(3)<<A[s];
	cout<<endl;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -