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

📄 创建顺序表.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 ins(sqlist A,int n,int i,elemtype x)    //在顺序表的第i个元素前插入一个元素x
//若i=0,则新元素作为第一个元素;若i=n,则插入在最后 
{
	int j;
	if(i<0||i>n)
		cout<<"i值下溢或上溢"<<endl;
	else
	{
		for(j=n-1;j>=i;j--)
			A[j+1]=A[j];           //将第个元素以及其后的元素后移
	    A[i]=x;n++;                //顺序表长度增加1

	}
	return n;
}
int del(sqlist A,int n,int i)
{
	int j;
	if(i<0||i>n)
		cout<<"i值下溢或上溢"<<endl;
	else
	{
		for(j=i-1;j<n;j++)
			A[j]=A[j+1];           //将第i个元素之后的元素前移覆盖A[i]
		n--;
	}
	return n;
}
int find(sqlist A,int n,elemtype x)    //在一个n个元素的顺序表中查找元素值为x的元素
{
	int i=0;
	while(i<=n && A[i]!=x)
		i++;
	if(i<n)
		return 1;
	else 
		return 0;
}
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 invert(sqlist A,int n)
{
	int m=n/2,i;                //m为长度的一般即[n/2]
	elemtype temp;
	for(i=0;i<m;i++)             //将A[i]与A[n-i-1]进行交换
	{
		temp=A[i];
		A[i]=A[n-i-1];
		A[n-i-1]=temp;
	}
}
	
void main()
{
	sqlist A;
	int n;
	n=create(A);
	disp(A,n);
	int i,x,j;
	cout<<"在第i个元素前插入一个新元素x,请输入i与x的值:";
	cin>>i>>x;
	n=ins(A,n,i-1,x);
	disp(A,n);
	cout<<"要删除第j个元素,请输入j的值:";
	cin>>j;
	n=del(A,n,j);
    disp(A,n);
	sort(A,n);
	cout<<"经过排序后的顺序表为:"<<endl;
	for(int s=0;s<n;s++)
		cout<<setw(3)<<A[s];
	cout<<endl;
	cout<<"倒置后";
	invert(A,n);
	disp(A,n);

}


⌨️ 快捷键说明

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