#include<iostream.h>
#include<stdlib.h>
#include<time.h>
#include<math.h>
#define MAXSIZE 100
typedef int datatype;
typedef struct
{
datatype a[MAXSIZE];
int size;
}sequence_list;
void inti(sequence_list *slt);
void input(sequence_list slt);
void output(sequence_list slt);
int find(sequence_list slt,datatype x);
void insert(sequence_list *slt,datatype x,int position);
void dele(sequence_list *slt,int position);
void inti(sequence_list *slt)//置空表
{
slt->size=0;
}
//输入顺序表的元素
void input(sequence_list slt)
{
int i;
cout<<"请输入顺序表元素的个数:";
cin>>slt.size;
for(i=0;i<slt.size;i++)
cin>>slt.a[i];
}
void output(sequence_list slt)
{
int i;
cout<<"输出顺序表元素的各个元素";
for(i=0;i<slt.size;i++)
cout<<slt.a[i];
}
int find(sequence_list slt,datatype x)
{
int i=0;
for(i=0;i<slt.size;i++)
if(x==slt.a[i])
break;
if(i<slt.size)//成功找到
return i;
else//失败
return 0;
}
void insert(sequence_list *slt,datatype x,int position)
{
int i;
if(slt->size==MAXSIZE)
{
cout<<"\n顺序表是满的!没法插入";
exit(1);
}
if(position<0||position>slt->size)
{
cout<<"\n指定插入的位置不存在!";
exit(1);
}
for(i=slt->size-1;i>=position;i--)
slt->a[i+1]=slt->a[i];
slt->a[position]=x;
slt->size++;
}
void dele(sequence_list *slt,int position)
{
int i;
if(slt->size ==0)
{cout<<"\n顺序表是空的!";
exit(1);
}
if(position<0||position>=slt->size )
{
cout<<"\n指定的删除位置不存在!";
exit(1);
}
for(i=position;i<slt->size ;i++)
slt->a[i-1]=slt->a [i];
slt->size--;
}
void main()
{
system("color 3e");
int flag,position;
datatype x;
sequence_list slt;
do
{
int i;
system("cls"); //运行前清屏
for(i=0;i<80;i++)
cout<<"*";
cout<<"\n- - - - - - - - - - - - - - - -顺序表 - - - - -- - - - - - - - - - \n";
cout<<" \t1.置空表\n";
cout<<"\t2.顺序表输入\n";
cout<<"\t3.顺序表输出\n";
cout<<"\t4.顺序表查找\n";
cout<<"\t5.顺序表插入\n";
cout<<"\t6.顺序表删除\n";
//cout<<"\n- - - - - - -- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\n";
//for(i=0;i<80;i++)
//cout<<"*";
cout<<"\n\t输入选择类型1--6:";
cin>>"%d",&flag;
switch(flag)
{
case 1:inti(&slt);break;
case 2:input(slt);break;
case 3:output(slt);break;
case 4:find(slt,x);break;
case 5:insert(&slt,x,position);break;
case 6:dele(&slt,position);break;
exit(0);
default:
cout<<"\t请重新输入:\n\t\t";
system("pause>null"); //按任意键继续,并不显示出来
}
}while(flag);
}
#include<stdlib.h>
#include<time.h>
#include<math.h>
#define MAXSIZE 100
typedef int datatype;
typedef struct
{
datatype a[MAXSIZE];
int size;
}sequence_list;
void inti(sequence_list *slt);
void input(sequence_list slt);
void output(sequence_list slt);
int find(sequence_list slt,datatype x);
void insert(sequence_list *slt,datatype x,int position);
void dele(sequence_list *slt,int position);
void inti(sequence_list *slt)//置空表
{
slt->size=0;
}
//输入顺序表的元素
void input(sequence_list slt)
{
int i;
cout<<"请输入顺序表元素的个数:";
cin>>slt.size;
for(i=0;i<slt.size;i++)
cin>>slt.a[i];
}
void output(sequence_list slt)
{
int i;
cout<<"输出顺序表元素的各个元素";
for(i=0;i<slt.size;i++)
cout<<slt.a[i];
}
int find(sequence_list slt,datatype x)
{
int i=0;
for(i=0;i<slt.size;i++)
if(x==slt.a[i])
break;
if(i<slt.size)//成功找到
return i;
else//失败
return 0;
}
void insert(sequence_list *slt,datatype x,int position)
{
int i;
if(slt->size==MAXSIZE)
{
cout<<"\n顺序表是满的!没法插入";
exit(1);
}
if(position<0||position>slt->size)
{
cout<<"\n指定插入的位置不存在!";
exit(1);
}
for(i=slt->size-1;i>=position;i--)
slt->a[i+1]=slt->a[i];
slt->a[position]=x;
slt->size++;
}
void dele(sequence_list *slt,int position)
{
int i;
if(slt->size ==0)
{cout<<"\n顺序表是空的!";
exit(1);
}
if(position<0||position>=slt->size )
{
cout<<"\n指定的删除位置不存在!";
exit(1);
}
for(i=position;i<slt->size ;i++)
slt->a[i-1]=slt->a [i];
slt->size--;
}
void main()
{
system("color 3e");
int flag,position;
datatype x;
sequence_list slt;
do
{
int i;
system("cls"); //运行前清屏
for(i=0;i<80;i++)
cout<<"*";
cout<<"\n- - - - - - - - - - - - - - - -顺序表 - - - - -- - - - - - - - - - \n";
cout<<" \t1.置空表\n";
cout<<"\t2.顺序表输入\n";
cout<<"\t3.顺序表输出\n";
cout<<"\t4.顺序表查找\n";
cout<<"\t5.顺序表插入\n";
cout<<"\t6.顺序表删除\n";
//cout<<"\n- - - - - - -- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\n";
//for(i=0;i<80;i++)
//cout<<"*";
cout<<"\n\t输入选择类型1--6:";
cin>>"%d",&flag;
switch(flag)
{
case 1:inti(&slt);break;
case 2:input(slt);break;
case 3:output(slt);break;
case 4:find(slt,x);break;
case 5:insert(&slt,x,position);break;
case 6:dele(&slt,position);break;
exit(0);
default:
cout<<"\t请重新输入:\n\t\t";
system("pause>null"); //按任意键继续,并不显示出来
}
}while(flag);
}


