#include<iostream.h>
#define DATATYPE int
#define MAXSIZE 100
typedef int sqlist[MAXSIZE];
void InitList(sqlist L,int n)
{//顺序表的初始化
int i;
cout<<"请输入顺序表的各个元素:"<<endl;
for(i=0;i<n;i++)
{
cin>>L[i];
cout<<L[i]<<" ";
}//输入顺序表的各个元素并输出各个元素
cout<<endl;
}
void CpyList(sqlist L,sqlist y)
{//复制L到y(用于在主函数中将变化的顺序表变回原样,进行对原顺序表的下一步的操作)
int i;
for(i=0;i<100;i++)
y[i]=L[i];
}
void LocateList(sqlist L,int n)
{// 查找顺序表中的最大的值并输出
int i,k;
k=L[0];//k中L中最大的值
for(i=0;i<n;i++)
if(L[i]>k) k=L[i];
cout<<"顺序表中最大的元素为"<<k<<endl;
}
void InsertList(sqlist L,int n,int i,int x)
{//在线性表的第i个元素前插入一个正整数x
int j;
for(j=n-1;j>=i-1;j--)
L[j+1]=L[j];//第i个元素后面的元素向后移
L[i-1]=x;//将x插入到第i个元素
cout<<"插入后的数组:"<<endl;
for(j=0;j<n+1;j++)
cout<<L[j]<<" ";//将插入后的数组输出
cout<<endl;
}
void DeleteList(sqlist L,int n,int j)
{//删除线性表中的第j个元素
int i;
for(i=j;i<n;i++)
{
L[i-1]=L[i];
}//将第j个元素后面的元素向前移
cout<<"删除后的数组:"<<endl;
for(i=0;i<n-1;i++)
{
cout<<L[i]<<" ";
}//输出删除后的数组
cout<<endl;
}
void SortList(sqlist L,int n)
{//将线性表中的元素按升序排列
int i,j;
sqlist k;//中间变量temp
for(i=0;i<n-1;i++)
for(j=0;j<n-i-1;j++)
{
if(L[j]>L[j+1])
{k[0]=L[j];L[j]=L[j+1];L[j+1]=k[0];}
}//冒泡排序法
cout<<"升序排序:"<<endl;
for(i=0;i<n;i++)
{
cout<<L[i]<<" ";
}//将升序排列后的数组输出
cout<<endl;
}
void RevordList(sqlist L,int n)
{//逆序(用一个暂存空间)(程序在内存空间的问题上出现问题,作者会尽快解决!!)
int i;
cout<<"逆序:"<<endl;
for(i=n-1;i>=0;i--)
{
cout<<L[i]<<" ";
}
cout<<endl;
}
void main()
{
char choice;
sqlist L,y;
int n,i,x,j;
cout<<"请输入顺序表元素的个数:"<<endl;
cin>>n;
InitList(L,n);
CpyList(L,y);
cout<<"输入A,查找顺序表中的最大的值并输出"<<endl;
cout<<"输入B,在线性表的第i个元素前插入一个正整数x"<<endl;
cout<<"输入C,删除线性表中的第j个元素"<<endl;
cout<<"输入D,将线性表中的元素按升序排列"<<endl;
cout<<"输入E,将线性表中逆序排列"<<endl;
cout<<"输入F,将结束程序"<<endl;
cout<<"请输入:"<<endl;
do
{
cin>>choice;
switch(choice)
{
case'A':{
LocateList(L,n);CpyList(y,L);continue;
}
case'B':{
cout<<"请分别输入i和x:"<<endl;
cin>>i>>x;
InsertList(L,n,i,x);CpyList(y,L);continue;
}
case'C':{
cout<<"请输入j:"<<endl;
cin>>j;
DeleteList(L,n,j);CpyList(y,L);continue;
}
case'D':{
SortList(L,n);CpyList(y,L);continue;
}
case'E':{
RevordList(L,n);CpyList(y,L);continue;
}
}
}
while(choice!='F');
}
数据结构—顺序表的建立及使用
猜你喜欢
转载自blog.csdn.net/qq_41596915/article/details/82854718
今日推荐
周排行